Freigeben über


So aktivieren Sie die WPP-Ablaufverfolgung über den Windows-Ereignisprotokolldienst

Der Windows-Ereignisprotokolldienst unterstützt die WPP-Protokollierung und -Decodierung. In diesem Thema wird beschrieben, wie Sie die WPP-Ablaufverfolgung über den Windows-Ereignisprotokolldienst aktivieren.

Das Aktivieren der WPP-Ablaufverfolgung in diesem Szenario erfordert keine zusätzliche Arbeit für den WPP-Anbieter. Um jedoch den Windows-Ereignisprotokolldienst zu verwenden, müssen Sie ein Manifest und einen Ereignisprotokollanbieter angeben. Um die WPP-Ablaufverfolgung zu aktivieren, deklarieren Sie einen Debugkanal, und geben Sie die zugehörige Steuerelement-GUID an, wie für Ihren WPP-Anbieter deklariert.

Zum Beispiel:

<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>

Die WPP-Ablaufverfolgung soll nicht immer aktiviert werden, daher sollte standardmäßig das "Enable "-Attribut im Manifest auf "false" festgelegt werden. Wenn die WPP-Ablaufverfolgung erforderlich ist, ändern Sie das Attribut im Manifest, sodass enabled="true" aktiviert ist.

Sie können keine Steuerelementbits angeben oder einzeln auswählen. Um alle WPP-Ereignisse für diesen Kanal zu aktivieren, geben Sie einen Schlüsselwortwert von 0XFFFFFFFF an. Intern ordnen Sie Bits Schlüsselwörtern zu; Wenn Sie wissen, welches Bit einem bestimmten Schlüsselwort zugeordnet ist, können Sie dieses Schlüsselwort auswählen, um einen bestimmten Satz von Ereignissen abzurufen. Im Beispielmanifest ist der Schlüsselwortwert 0xFFFF, da weniger als 16 WPP-Steuerelementbits erforderlich sind. Um nach der Installation einen bestimmten Satz von Ereignissen zu erhalten, können Sie die Schlüsselwörter mithilfe des befehlszeilenbasierten Hilfsprogramms wevtutil.exe ändern. Der Befehl lautet:

wevtutil sl< channel name>/k:<keyword value corresponding to control bit>

Beachten Sie, dass der Kanal zuerst deaktiviert werden muss, um den Schlüsselwortwert zu ändern.

Durch das Deklarieren eines Kanals auf diese Weise können sowohl der WPP-Anbieter (dessen Steuerelement-GUID angegeben ist) als auch der Ereignisprotokollanbieter (unter dem dieser Kanal deklariert wird) auf den Debugkanal zugreifen, sodass jeder Anbieter in diesen Kanal schreiben kann. WPP-Ereignisse oder normale ETW-Ereignisse können jetzt über die Ereignisanzeige unter diesem Kanal angezeigt werden.

WPP-Ereignisse werden nicht decodiert. Um Nachrichtenzeichenfolgen abzurufen, die diesen Ereignissen zugeordnet sind, platzieren Sie die TMF-Dateien im Verzeichnis %windir%\System32\winevt\TraceFormat. Sie können die TMF-Dateien mithilfe eines Hilfsprogramms wie Tracepdb.exe abrufen, das die PDB-Datei zur Eingabe verwendet und TMF-Dateien zurückgibt.