Windows Kernel Debugger API?доступ к строкам

Как можно прочитать строки отладчика ядра Windows, сгенерированные вызовами функций kdPrint или debugPrint?

Чтение особенно в пользовательском режиме, но и в режиме ядра тоже хорошо!

Это то же самое, что и DebugView, но я хочу фильтровать и работать только с определенными сообщениями (строками), переданными отладчику.


person Cosmin Popescu    schedule 21.04.2010    source источник
comment
Связано: Написать собственную версию DebugView   -  person Peter Mortensen    schedule 23.10.2017


Ответы (1)


В пользовательском режиме вы есть DBWIN "API":

  1. Создайте именованную («DBWIN_BUFFER») область общей памяти (4096 байт, первый DWORD — это pid процесса) и два события.
  2. Сигнализировать об именованном событии DBWIN_BUFFER_READY
  3. Дождитесь именованного события DBWIN_DATA_READY.
  4. Чтение общей памяти (и перейдите к шагу № 2, чтобы получить следующий вывод)

В режиме ядра на NT6 у вас есть DbgSetDebugPrintCallback.

В старых вещах вам нужно сделать какую-то перехватку (int 0x2d / DebugService). Лучшее место, где можно найти дополнительную помощь по этому поводу, вероятно, OSR < href="http://www.osronline.com/showThread.CFM?link=170564" rel="nofollow noreferrer">группа новостей.

Изменить: в Vista и более поздних версиях вам необходимо установить Debug Print Filter для включения выходных сообщений отладки от DbgPrint[Ex] (для KdPrint вам нужен отладчик ядра IIRC)

person Anders    schedule 21.04.2010
comment
Большое спасибо за ваш ответ, но у меня все еще есть некоторые проблемы ... Я написал вопросы как ответ! - person Cosmin Popescu; 28.04.2010