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


Включение трассировки WPP через службу журналов событий Windows

Служба журнала событий Windows поддерживает ведение журнала WPP и декодирование. В этом разделе описывается, как включить трассировку WPP через службу журнала событий Windows.

Включение трассировки WPP в этом сценарии не требует дополнительной работы для поставщика WPP. Однако для использования службы журнала событий Windows необходимо предоставить манифест и поставщик журнала событий. Чтобы включить трассировку WPP, объявите канал отладки и укажите связанный GUID элемента управления, объявленный для поставщика WPP.

Например:

<instrumentationManifest
    xmlns="http://schemas.microsoft.com/win/2004/08/events"
    xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema"  xsi:schemaLocation="http://schemas.microsoft.com/win/2004/08/events eventman.xsd"  
    >
   <instrumentation>
        <events>
            <provider name="Microsoft-Windows-mySampleProvider"
                guid="{61CE3EC9-E5E8-4b96-A451-74631A6E0D5C}"
                >
          <channel
        chid="MS_WINDOWS_GE_DEBUG"
        enabled="false"
        isolation="System"
        message="$(string.Microsoft-Windows-GenerateEvent.channel.CHANNEL_DEBUG.message)"
        name="Microsoft-Windows-GenerateEvent/Debug"
        symbol="CHANNEL_DEBUG"
        type="Debug"
        >
        <publishing>
          <level>2</level>
          <keywords>0xFFFFFFFF</keywords>
          <controlGuid>{d58c126f-b309-11d1-969e-0000f875a5bc}</controlGuid>
        </publishing>
        </channel>
       </provider>
    </events>
   </instrumentation>
</instrumentationManifest>

Трассировка WPP не должна быть включена все время, поэтому по умолчанию атрибут включения в манифесте должен иметь значение false. Если требуется трассировка WPP, измените атрибут в манифесте, чтобы включить="true".

Невозможно указать или отдельно выбрать биты элемента управления. Чтобы включить все события WPP в этот канал, укажите ключевое слово 0XFFFFFFFF. Внутри системы управления биты сопоставляют с ключевыми словами; Если вы знаете, какие биты сопоставляют определенное ключевое слово с определенным ключевым словом, можно выбрать это ключевое слово, чтобы получить определенный набор событий. В примере манифеста ключевое слово имеет значение 0xFFFF, так как требуются менее 16 битов элементов управления WPP. Чтобы получить определенный набор событий после установки, можно изменить ключевые слова с помощью программы командной строки wevtutil.exe. Для этого используется следующая команда.

Имя> канала wevtutil sl</k:<keyword, соответствующее биту управления>

Обратите внимание, что канал должен быть отключен, чтобы изменить значение ключевого слова.

Объявление канала таким образом позволяет поставщику WPP (guid управления которого задан) и поставщику журнала событий (в котором объявлен этот канал) доступ к отладочному каналу, чтобы любой поставщик мог записывать данные в этот канал. События WPP или обычные события ETW теперь можно увидеть в этом канале через средство просмотра событий.

События WPP не декодируются. Чтобы получить строки сообщения, связанные с этими событиями, поместите файлы TMF в каталог %windir%\System32\winevt\TraceFormat. Файлы TMF можно получить с помощью программы, например Tracepdb.exe, которая принимает PDB-файл для ввода и возвращает файлы TMF.