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


Как войти в глобальный сеанс средства ведения журнала

Используйте следующую процедуру, чтобы настроить драйвер для входа в сеанс трассировки глобального средства ведения журнала.

  1. Добавьте в код драйвера следующее определение. Вставьте определение между определением макроса WPP_CONTROL_GUIDS и инструкцией include для файла заголовка сообщения трассировки.

    #define WPP_GLOBALLOGGER
    
  2. Используйте Tracelog для настройки сеанса трассировки глобального средства ведения журнала. Простейшая команда выглядит следующим образом:

    tracelog -start GlobalLogger
    

    Полные инструкции, включая параметры для настройки сеанса трассировки глобального средства ведения журнала, см. в разделах Синтаксис команды Tracelog и Глобальный сеанс трассировки средства ведения журнала.

    Пример см. в разделе Пример 13. Создание сеанса глобального средства ведения журнала.

    Эта команда создает и настраивает сеанс трассировки, но сеанс не запускается до перезапуска системы (шаг 5).

  3. В подраздел HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger добавьте подраздел с именем для GUID элемента управления поставщика трассировки. В Windows Vista и более поздних версиях Windows GUID элемента управления должен быть заключен в фигурные скобки ( {} ).

    Команда tracelog -start GlobalLogger добавляет подраздел GlobalLogger в реестр. Подраздел ControlGUID устанавливает драйвер в качестве поставщика трассировки для сеанса трассировки глобального средства ведения журнала.

    Например, чтобы настроить пример драйвера Tracedrv для входа в сеанс трассировки глобального средства ведения журнала на компьютере под управлением Windows XP, добавьте подраздел с именем для GUID элемента управления Tracedrv. d58c126f-b309-11d1-969e-0000f875a5bc: HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger\d58c126f-b309-11d1-969e-0000f875a5bc.

    TraceDrv, пример драйвера, предназначенного для трассировки программного обеспечения, доступен в репозитории примеров драйверов Windows на сайте GitHub.

  4. Чтобы настроить поставщик трассировки, добавьте следующие записи реестра в подраздел ControlGUID . Эти записи являются необязательными, и их значения определяются драйвером.

    Имя записи Тип данных Описание

    Флаги

    REG_DWORD

    Задает флаги трассировки для поставщика.

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

    Уровень

    REG_DWORD

    Указывает уровень трассировки для поставщика.

    Значение значения Level определяется каждым поставщиком трассировки независимо. Как правило, уровень трассировки представляет серьезность события (сведения, предупреждение или ошибка).

Обратите внимание, что имя записи Flags — во множественном числе, а имя записи Level — единственное число.

  1. Перезапустите систему. Откроется сеанс трассировки глобального средства ведения журнала.

После завершения тестирования удалите подраздел ControlGUID или задайте для записи Start в подразделе GlobalLogger значение 0. В противном случае запускается сеанс глобального средства ведения журнала, и драйвер регистрирует его при каждом перезапуске системы.

Комментарии

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

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

Определения WPP создают только небольшой объем кода, поэтому нет необходимости удалять их из кода после тестирования.