Принцип работы DbgView

Тема в разделе "WASM.BEGINNERS", создана пользователем Twister, 17 янв 2007.

Статус темы:
Закрыта.
  1. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Собственно, САБЖ.

    Где можно почитать про то, как у Руссиновича реализовано слежение за DbgPrint?
     
  2. PsReadRtfm

    PsReadRtfm New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    32
    о точна, мне тоже пожалуйста сорцы :)
    и ещё есть ли у кого сорцы tcpview ?
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Поиск по форуму.
     
  4. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    смотрел только что его драйвер в идке, и возник одни вопрос, по поводу используемых там методов коммуникации между kernel mode и user mode:

    драйвер перехватывает отладочную инфу, пишет её в структуры, для которых выделяет память... usermode-часть несколько раз в секунду посылет драйверу запросы ввода-вывода, а тот в свою очередь отдаёт в ответе на него собраную инфу, и освобождает занятую ею память.
    ну и собсно, сам вопрос: почему именно так? не проще было бы использовать named pipes? ведь в случае, если инициатором связи должен выступать драйвер, это было бы какраз то что нужно, да и в плане кода намного проще...
     
  5. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    :) Как как, хуки повесил и все.
     
  6. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Gmer в помощь
     
  7. DelExe

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165
    Cr4sh
    Так сложилось исторически.

    "инициатором связи" на самом деле выступает приложение. Так как оно или зачитывает даные с драйвера, или просто игнорирует его.

    "методов коммуникации между kernel mode и user mode" может быть много. Но для утилит типа regmon/filemon/dbgview/... вполне подходит схема таймер-DeviceIoControl. Драйвер пасивный - он лишь устанавливает/снимает хуки, фильтры и пишет инфу в собственный лог-буффер.
     
Статус темы:
Закрыта.