次の方法で共有


EventProvider

Windows イベント トレーシング (ETW) のユーザー モード プロバイダーを構成します。

要素の階層

構文

<EventProvider Id               = IdType
               Name             = string
               Base             = string
               NonPageMemory    = boolean
               Stack            = boolean
               SID              = boolean
               TSID             = boolean
               Level            = unsigendByte
               CaptureStateOnly = boolean
               Strict           = boolean
               ProcessExeFilter = string
               EventKey         = boolean
               ExcludeInPrivate = boolean>

  <!-- Child elements -->
  Keywords,
  CaptureStateOnStart,
  CaptureStateOnSave,
  CaptureStateOnDemand,
  Stacks,
  EventFilters,
  StackFilters,
  EventNameFilters,
  StackEventNameFilters,
  StackKeywordLevelFilter
</EventProvider>

属性および要素

属性

属性 説明 データ型 必須 Default
Id イベント プロバイダーを一意に識別します。 少なくとも 1 つの文字を含み、コロン (:) とスペースを含めることができない文字列。 はい
名前 イベント プロバイダーの名前。 この属性は、次のいずれかの値になります。
  • 登録された Crimson プロバイダー (例: "Microsoft-Windows-Search-Core")。

  • プロバイダー GUID (例: "49c2c27c-fe2d-40bf-8c4e-c3fb518037e7")。

  • レガシ プロバイダーの名前 (例: "IE6")。

  • "PerfTrack" や "DotNetProvider" などの特殊なケースの名前。

はい
ProcessExeFilter 指定されたプロセス名 .exe に基づいてイベントをフィルター処理します。 EVENT_FILTER_DESCRIPTOR でフィルター データを設定します。 これは、WPR プロファイルの EventProvider ID に追加するオプションの属性です。 次に例を示します。
  • "ProcessExeFilter="wpa.exe"

いいえ
Base プロバイダーのベースを示します。 string いいえ
NonPagedMemory トレース セッションには非ページ メモリを使用します。 boolean いいえ false
スタック イベントを使用してスタックをキャプチャする boolean いいえ false
SID ログに記録されたイベントの拡張データに、ユーザーのセキュリティ識別子 (SID) を含める。 EVENT_ENABLE_PROPERTY_SID を設定します。 boolean いいえ false
TSID ログに記録されたイベントの拡張データにターミナル セッション識別子を含める。 EVENT_ENABLE_PROPERTY_TS_ID を設定します。 boolean いいえ false
Level レベル値を示します。 unsignedByte いいえ 0。ETW では 0xFF として扱われます。
CaptureStateOnly トレース セッションの開始時または保存時にのみプロバイダーを有効にしました。 boolean いいえ false
Strict プロバイダーを有効にできない場合は、トレース記録を失敗します。 boolean いいえ false
EventKey 拡張データにイベント キーを含め、EVENT_ENABLE_PROPERTY_EVENT_KEY フラグを設定します。 boolean いいえ false
ExecludeInPrivate InPrivate イベントとしてマークされているイベント、または InPrivate プロセスからのイベントをすべて除外します。 EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE フラグを設定する boolean いいえ false
EnableSilos ホスト ログ セッションがサーバー サイロから真紅のイベントを収集できるようにします。 フラグEVENT_ENABLE_PROPERTY_ENABLE_SILOS設定します。 boolean いいえ false
ContainerId プロバイダーのイベントにソース コンテナー情報をマークします。 フラグEVENT_ENABLE_PROPERTY_SOURCE_CONTAINER_TRACKING設定します。 boolean いいえ false

子要素

要素 説明 要件
Keywords (EventProvider 内) Keyword (EventProvider 内) 要素のコレクションを表します。 オプション、1 以上。
CaptureStateOnStart トレースの開始時にキャプチャされるイベントの Keyword (EventProvider 内) 要素のコレクションを表します。 オプション (0 または 1 )。
CaptureStateOnSave トレースの保存時にキャプチャされるイベントの Keyword (EventProvider 内) 要素のコレクションを表します。 オプション (0 または 1 )。
CaptureStateOnDemand ユーザーがコマンドを使用してトリガーしたときにキャプチャされるイベントの Keyword 要素 (EventProvider 内) のコレクションを wpr -capturestateondemand 表します。 オプション、0 または 1 個。
Stacks スタックのコレクションを表します。 UMGL プロバイダーの場合。 オプション、1 つのみ。
EventFilters イベント ID フィルターのコレクションを表します。 オプション、1 つのみ。
StackFilters イベント ID でスタック フィルターのコレクションを表します。 オプション、1 つのみ。
EventNameFilters イベント名フィルターのコレクションを表します。 オプション、1 つのみ。
StackEventNameFilters イベント名でスタック フィルターのコレクションを表します。 オプション、1 つのみ。
StackKeywordLevelFilter キーワード (keyword)とレベルでスタック フィルターのコレクションを表します オプション、1 つのみ。

親要素

要素 説明
EventProviders EventProvider 要素のコレクションを表します。
Profiles コレクター、プロバイダー、およびプロファイルのコレクションを表します。

注釈

プロバイダー定義の順序は重要です。 定義は、.wprp ファイルの次の順序で指定する必要があります。

  1. Collectors
  2. システム プロバイダー
  3. イベント プロバイダー

省略可能な内部 XML タグは、有効にするキーワードを指定します。 システム プロバイダーとは異なり、イベント プロバイダーにはテキスト定数が定義されていないため、16 進形式の文字列を使用する必要があります。 ただし、構文はシステム プロバイダーの場合と同じです。 キーワードが指定されていない場合は、既定値のゼロが使用されます (ETW では文字列 0xFFFFFFFFFFFFFFFF として扱われます)。

派生イベント プロバイダーには、既定で基本プロバイダーのすべての属性が含まれます。 これらは、派生プロバイダーで明示的に指定することによってオーバーライドできます。 詳細については、「継承」を参照してください。

次の例では、2 つのイベント プロバイダーを定義します。

<EventProvider
  Id="Win32K-provider"
  Name="Microsoft-Windows-Win32K"
  NonPagedMemory="true"
  Stack="true"> 
  <Keywords>
    <Keyword
      Value="0x240000"/>
  </Keywords>
</EventProvider>

<EventProvider
  Id="Search-Core-provider"
  Name="Microsoft-Windows-Search-Core"/>

次のコード例では、キャプチャ状態プロバイダーを定義します。

<EventProvider Id="sample-provider" Name="SampleProvider" NonPagedMemory="true" Level="5">
  <Keywords>
    <Keyword Value="0x98"/> <!-- Provider is enabled with these keywords throughout the tracing session. -->
  </Keywords>
  <CaptureStateOnStart>
    <Keyword Value="0xff4"/> <!-- Provider is enabled with these keywords when tracing is started. -->
  </CaptureStateOnStart>
  <CaptureStateOnSave>
    <Keyword Value="0x118"/> <!-- Provider is enabled with these keywords when tracing is saved. -->
  </CaptureStateOnSave>
</EventProvider>

<EventProvider Id="EventProvider_DWMWin32k_CaptureState" Name="e7ef96be-969f-414f-97d7-3ddb7b558ccc" NonPagedMemory="true" CaptureStateOnly="true" > 
  <!-- CaptureStateOnly="true" means that provider is not enabled throughout the tracing session. -->
  <CaptureStateOnSave>
    <Keyword Value="0x80000"/> <!-- Provider is enabled with these keywords when tracing is saved. -->
  </CaptureStateOnSave>
</EventProvider>

マネージド シナリオの場合は、次のイベント プロバイダー定義を使用します。

<EventCollectorId Value ="ExampleEventCollector">
  <EventProviders>
    <EventProviderId Value="EventProvider_DotNetProvider" /> <!-- You can use this provider in the profile definition because the provider is declared in the built-in profile -->
    <EventProviderId Value="Another_Example_Provider" />
    </EventProvider>
  </EventProviders>
</EventCollectorId>

要素