次の方法で共有


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 を指定します。 内部的には、制御ビットはキーワードにマップされます。特定のキーワードにマップするビットがわかっている場合は、そのキーワードを選択して特定のイベント セットを取得できます。 このマニフェスト例では、16 WPP 制御ビット未満が必要であるため、キーワード値は0xFFFFされています。 インストール後に特定のイベント セットを取得するには、wevtutil.exe コマンドライン ユーティリティを使用してキーワードを変更できます。 コマンドは次のとおりです。

wevtutilsl<channel name>/k:<コントロール ビットに対応するkeyword 値>

キーワード値を変更するには、まずチャネルを無効にする必要があることに注意してください。

この方法でチャネルを宣言すると、WPP プロバイダー (コントロール GUID が指定されている) とイベント ログ プロバイダー (このチャネルが宣言されている) の両方がデバッグ チャネルにアクセスできるため、どちらのプロバイダーもこのチャネルに書き込むことができます。 WPP イベントまたは通常の ETW イベントは、イベント ビューアーを介してこのチャネルの下に表示できるようになりました。

WPP イベントはデコードされません。 これらのイベントに関連付けられているメッセージ文字列を取得するには、TMF ファイルを %windir%\System32\winevt\TraceFormat ディレクトリに配置します。 TMF ファイルは、入力用の PDB ファイルを受け取り、TMF ファイルを返す Tracepdb.exeなどのユーティリティを使用して取得できます。