共用方式為


如何透過 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檔案。