如何透過 Windows 事件記錄服務啟用 WPP 追蹤
Windows 事件記錄服務支援 WPP 記錄和譯碼。 本主題描述如何透過 Windows 事件記錄服務啟用 WPP 追蹤。
在此案例中啟用 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 追蹤並非一直啟用,因此根據預設 ,指令清單中的 enable 屬性應該設定為 false。 需要 WPP 追蹤時,請變更指令清單中的 屬性,讓 enabled=“true”。
您無法指定或個別選取控制項位。 若要啟用此通道的所有 WPP 事件,請指定關鍵字值 0XFFFFFFFF。 在內部,控制位會對應至關鍵詞;如果您知道哪個位對應至特定關鍵詞,您可以選取該關鍵詞以取得一組特定的事件。 在範例指令清單中,關鍵詞值0xFFFF,因為需要少於16個WPP控件位。 若要在安裝之後取得一組特定的事件,您可以使用 wevtutil.exe命令行公用程式來變更 關鍵詞。 命令為:
wevtutil sl< 通道名稱>/k:<keyword 值對應至控制位>
請注意,通道必須先停用,才能變更關鍵詞值。
以這種方式宣告通道可讓 WPP 提供者(其控件 GUID 已指定)和事件記錄檔提供者(在此通道宣告下)存取偵錯通道,讓任一提供者都可以寫入此通道。 WPP 事件或一般 ETW 事件現在可透過事件查看器在此通道下看到。
WPP 事件不會譯碼。 若要取得與這些事件相關聯的訊息字串,請將TMF檔案放在 %windir%\System32\winevt\TraceFormat 目錄中。 您可以使用 Tracepdb.exe 之類的公用程式取得TMF檔案,此公用程式會接受 PDB 檔案進行輸入並傳回TMF檔案。