Программирование драйверов Windows

       

Программа DebugPrint


Весьма интересная программа DebugPrint (полное название — Debug Print Monitor), была разработана фирмой PHD Computer Consultant Ltd., с программными продуктами которой подробнее можно ознакомиться на интернет сайте phdcc.com.

Совместно с программой пользовательского режима DebugPrint работает драйвер режима ядра DebugPrt.sys (разработанный в PHD CC Ltd.), который должен быть установлен заранее. Доступ к DebugPrt.sys клиентский драйвер должен получить средствами специального программного кода (использующего, в частности, редкий для драйверного кода вызов ZwCreateFile). Разработчик присоединяет к отладочной версии своего драйвера (в данной ситуации &#8212 клиентского по отношению к DebugPrt.sys) этот специальный программный код, предоставляемый в форме исходного текста на языке С, обеспечивая таким образом связь с DebugPrt.sys и вывод сообщений в его внутренние буферные области. Работа собственно программы Debug Print Monitor состоит в том, чтобы выводить в своем рабочем окне сообщения отладочного характера, переданные драйверу DebugPrt.sys клиентским драйвером.

В том случае, если при старте операционной системы драйвер-получатель сообщений (DebugPrt.sys) загружается раньше отлаживаемого драйвера, все сообщения из отлаживаемого драйвера, даже переданные в процедурах инициализации, будут сохранены драйвером-получателем. Впоследствии, все сообщения можно просмотреть при помощи Debug Print Monitor, имеющей удобный графический интерфейс и позволяющей сохранять сообщения в текстовом файле для последующего анализа.

Для разработчика драйвера использование функций передачи выглядят почти что как использование функций printf или sprintf. Однако следует изначально использовать приемы условной компиляции, чтобы использование этого отладочного трюка не навредило в окончательной версии драйвера (где такие операции являются непозволительной роскошью и при слишком обильной диагностике &#8212 могут приводить к сбою системы), а переход от отладочной (checked) версии к релизной (free) и наоборот отнимал бы минимум усилий у разработчика. При правильном применении условной компиляции разработчику достаточно выбрать среду компиляции DDK (checked/free), что уже определяет полностью версию собранного проекта (см. п. 2.1.2).

Драйвер DebugPrt.sys, необходимый для работы программы Debug Print Monitor, устанавливается при помощи мастера установки оборудования и inf файла и запускается в процессе загрузки операционной системы.



Содержание раздела