Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как использовать препроцессор трассировки программного обеспечения Windows (WPP) для трассировки операции компонента программного обеспечения (поставщика трассировки). Поставщик трассировки может быть одним из следующих:
Драйвер режима ядра.
Драйвер пользовательского режима, приложение или библиотека динамической компоновки (DLL).
Программное обеспечение WPP для трассировки дополняет и улучшает трассировку событий WMI, предлагая более простые способы трассировки работы поставщика трассировки. Это эффективный механизм для поставщика трассировки для регистрации двоичных сообщений в режиме реального времени. Регистрируемые сообщения впоследствии можно преобразовать в удобочитаемую пользователем трассировку работы источника трассировки.
| Когда следует использовать трассировку программного обеспечения WPP? |
|---|
Трассировка программного обеспечения WPP в основном предназначена для отладки кода во время разработки. Если вы хотите опубликовать события, которые могут использоваться приложениями, заинтересованными в структурированных ETW-событиях, помимо трассировки во время разработки, используйте следующее:
|
Ведение журналов сообщений с помощью трассировки программного обеспечения WPP аналогично использованию служб ведения журнала событий Windows. Драйвер записывает идентификатор сообщения и неформатированные двоичные данные в файле журнала. Впоследствии постпроцессор преобразует сведения из файла журнала в удобочитаемую форму. Однако трассировка программного обеспечения WPP поддерживает форматы сообщений, которые более способны и гибки, чем поддерживаемые службами ведения журнала событий. Например, трассировка программного обеспечения WPP имеет встроенную поддержку IP-адресов, идентификаторов GUID, системных идентификаторов, меток времени и других полезных типов данных. Кроме того, пользователи могут добавлять пользовательские типы данных, относящиеся к приложению.
Обзор процесса трассировки программного обеспечения WPP
Базовый процесс добавления трассировки программного обеспечения WPP в драйвер или приложение включает следующие действия. Если вы используете один из шаблонов Visual Studio, предоставляемых в WDK для создания драйвера WDF, большая часть работы выполняется для вас.
Определите GUID элемента управления, который однозначно идентифицирует драйвер или приложение в качестве поставщика трассировки. Поставщик задает этот GUID в определении макроса WPP_CONTROL_GUIDS и в связанном файле управления, используемом tracelog или другим контроллером трассировки.
Добавьте необходимые директивы препроцессора, связанные с WPP, и вызовы макросов WPP к исходным файлам поставщика, как описано в Добавление трассировки ПО WPP в драйвер Windows и в Справочник по трассировке ПО WPP.
Измените проект Visual Studio, чтобы запустить препроцессор WPP и создать драйвер, как описано на шаге 6 добавления трассировки программного обеспечения WPP в драйвер Windows. Вы можете обратиться к препроцессору WPP для получения дополнительных параметров времени сборки.
Установите драйвер или компонент. Запустите сеанс трассировки и запишите сообщения трассировки. Используйте средства для трассировки программного обеспечения, таких как TraceView, Tracelog, Tracefmt и Tracepdb для настройки, запуска и остановки сеансов трассировки, а также для отображения и фильтрации сообщений трассировки. Эти средства включены в комплект драйверов Windows (WDK).
В этом разделе
- Добавление трассировки программного обеспечения WPP в драйвер Windows
- Регистратор трассировки для ведения журнала
- Использование программной трассировки WPP в провайдере трассировки
- Добавление макросов WPP в поставщик трассировки
- Препроцессор WPP
- Трассировка и диагностируемость драйверов WDF
Заметка Трассировка событий для Windows (ETW) и WPP поддерживают большинство типов драйверов в режиме ядра и пользовательском режиме. Однако ETW и WPP используют типы, которые недоступны для определённых драйверов, таких как минипорт-драйверы. Чтобы определить, поддерживается ли конкретный тип драйвера, добавьте основные макросы WPP в драйвер, например WPP_INIT_TRACING и WPP_CLEANUP. Если код не компилируется, так как используемые типы не определены, ETW и WPP не могут поддерживать тип драйвера.
Дополнительные сведения о трассировке событий для Windows см. в разделе «Трассировка событий для Windows».
Заметка Поставщики трассировки WPP могут быть включены только одним сеансом трассировки за раз. Дополнительные сведения см. в разделе поставщиков WPP .
Сведения о подпрограммах поддержки библиотеки WMI, поддерживающих трассировку программного обеспечения WPP, см. в следующих разделах: