Включение трассировки 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.