Поделиться через


Использование трассировки программного обеспечения WPP в драйверах KMDF

Программная трассировка WPP позволяет добавлять сообщения трассировки, помогающие отлаживать драйвер. Кроме того, средство ведения журнала событий платформы предоставляет сотни сообщений трассировки, которые можно просматривать.

Сообщения трассировки можно просматривать с помощью TraceView или Tracelog. Сообщения трассировки также можно отправлять в отладчик ядра.

Добавление сообщений трассировки в драйвер

Чтобы добавить сообщения трассировки в драйвер на основе платформы, необходимо:

  • Добавьте директиву #include в каждый исходный файл драйвера, содержащий любой из макросов WPP. Эта директива должна определить файл заголовка сообщения трассировки (TMH). Имя файла должно иметь формат <driver-source-file-name.tmh.>

    Например, если драйвер состоит из двух исходных файлов с именем MyDriver1.c и MyDriver2.c, myDriver1.c должен содержать:

    #include "MyDriver1.tmh"

    и MyDriver2.c должны содержать:

    #include "MyDriver2.tmh"

    При сборке драйвера в Microsoft Visual Studio препроцессор WPP создает . файлы tmh .

  • Определите макрос WPP_CONTROL_GUIDS в файле заголовка. Этот макрос определяет GUID и флаги трассировки для сообщений трассировки драйвера.

  • Включите макрос WPP_INIT_TRACING в подпрограмму DriverEntry драйвера. Этот макрос активирует трассировку программного обеспечения в драйвере.

  • Включите макрос WPP_CLEANUP в функцию обратного вызова EvtDriverUnload драйвера. Этот макрос отключает трассировку программного обеспечения в драйвере.

  • Используйте макрос DoTraceMessage или настраиваемую версию макроса в драйвере для создания сообщений трассировки.

  • Откройте страницы свойств для проекта драйвера. Щелкните правой кнопкой мыши проект драйвера в Обозреватель решений и выберите Свойства. На страницах свойств драйвера щелкните Свойства конфигурации, а затем — Трассировка Wpp. В меню Общие установите для параметра Запуск трассировки WPP значение Да. В меню Параметры файла также следует указать файл шаблона WPP платформы, например:

    {km-WdfDefault.tpl}*.tmh
    
  • Чтобы указать дополнительные параметры трассировки WPP для проекта драйвера в Visual Studio, щелкните правой кнопкой мыши проект драйвера в разделе Решения Обозреватель. Затем перейдите по ссылке Свойства-Свойства> конфигурации-Трассировка> WPP.

  • Чтобы указать файл конфигурации трассировки, используйте параметр "Сканировать данные конфигурации". Для нескольких файлов конфигурации трассировки добавьте его в раздел "Командная строка" —> "Дополнительные параметры", как показано ниже.

    -scan:"$(KMDF_INC_PATH)\$(KMDF_VER_PATH)\wdftraceenums.h"
    

    Дополнительные сведения о добавлении сообщений трассировки в драйвер см. в статье Добавление макросов WPP в драйвер.

Примеры драйверов, использующих трассировку программного обеспечения WPP

В примерах драйверов AMCC5933, NONPNP, KMDF_FX2, PCIDRV, PLX9x5x и Serial используется трассировка программного обеспечения WPP.