Просмотр сообщений DbgPrint в Windows 8.1

Я пытаюсь написать драйвер MiniFilter. У меня есть Visual Studio 2013 Update 3 и WDK, работающие на моем компьютере с Windows 8.1, вместе с установленным шаблоном от MS под названием «Драйвер фильтра: мини-фильтр файловой системы». Я сделал новый проект с этим шаблоном, позволяющий развертывание на удаленной (в моей локальной сети) виртуальной машине 8.1 с небольшим пакетным файлом для установки драйвера вместо встроенного установщика драйвера (который, я думаю, еще не поддерживается для минифильтров).

В этом шаблоне есть много операторов отладки, которые определены для вызова DbgPrint. Мне бы очень хотелось иметь возможность просматривать их в DebugView из пакета SysInternals. По-видимому, все, что мне нужно было сделать, это создать в реестре DWORD с именем DEFAULT, установленным в 0xF под HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter в соответствии с http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519.(v=vs.85).aspx . Но все равно в DebugView ничего не отображается. Я запустил его как администратор на виртуальной машине и отключил захват Win32.

Я бы предположил, что инструмент развертывания из WDK правильно настроил отладку ядра (он создал второго пользователя на моей виртуальной машине с именем WDKRemoteUser и запустил BCDEdit /debug для меня), но этого, похоже, недостаточно. Есть идеи?


person athairus    schedule 28.10.2014    source источник


Ответы (2)


Я считаю, что проблема в том, что тестовая машина должна быть запущена с отладчиком, ожидающим подключения к ней. Когда я это делаю, сообщения ядра отображаются в отладчике Visual Studio и, как я предполагаю, в DebugView.

person athairus    schedule 27.03.2015

Sysinternals DebugView не нуждается в машине с включенной отладкой, вы должны использовать такую ​​настройку для DebugView:

Начните с прав администратора и установите следующие параметры: Capture Kernel, Enable Verbose Kernel Output, Pass-Through.

Теперь закройте DebugView и снова откройте его как администратор.

Если вы по-прежнему ничего не видите, возможно, DbgPrint() с заданным типом не включен в развернутый драйвер.

person julio uniqum    schedule 28.03.2015