共用方式為


EventProvider

設定 Windows 事件追蹤 (ETW) 使用者模式提供者。

元素階層

Syntax

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

屬性和項目

屬性

屬性 描述 資料類型 必要 預設
Id 唯一識別事件提供者。 必須至少有一個字元且不能包含冒號的字串, (:) 或空格。 Yes
名稱 事件提供者的名稱。 此屬性可以有下列其中一個值:
  • 已註冊的 Crimson 提供者,例如「Microsoft-Windows-Search-Core」。

  • 提供者 GUID,例如 「49c2c27c-fe2d-40bf-8c4e-c3fb518037e7」。

  • 舊版提供者的名稱,例如 「IE6」。

  • 特殊大小寫名稱,例如 「PerfTrack」 或 「DotNetProvider」。

Yes
ProcessExeFilter 根據指定的進程.exe名稱篩選事件。 設定EVENT_FILTER_DESCRIPTOR中的篩選資料。 這是您在 WPR 設定檔中新增至 EventProvider 識別碼 的選擇性屬性。 例如:
  • 「ProcessExeFilter=」wpa.exe」

No
基地 表示提供者的基底。 字串 No
NonPagedMemory 針對追蹤會話使用非分頁式記憶體。 boolean No false
堆疊 使用 事件擷取堆疊 boolean No false
SID 在記錄事件的擴充資料中包含使用者的安全性識別碼 (SID) 。 設定EVENT_ENABLE_PROPERTY_SID。 boolean No false
TSID 在記錄事件的擴充資料中包含終端機會話識別碼。 設定EVENT_ENABLE_PROPERTY_TS_ID。 boolean No false
Level 展示層級值。 unsignedByte No 零,ETW 會將它視為0xFF。
CaptureStateOnly 只在追蹤會話的開始或儲存時啟用提供者。 boolean No false
Strict 如果提供者無法啟用,追蹤記錄就會失敗。 boolean No false
EventKey 在擴充資料中包含事件索引鍵,並設定EVENT_ENABLE_PROPERTY_EVENT_KEY旗標。 boolean No false
ExecludeInPrivate 篩選出標示為 InPrivate 事件或來自 InPrivate 進程的所有事件。 設定EVENT_ENABLE_PROPERTY_EXCLUDE_INPRI加值稅E旗標 boolean No false
EnableSilos 可讓主機記錄會話從伺服器接收器收集 Crimson 事件。 設定EVENT_ENABLE_PROPERTY_ENABLE_SILOS旗標。 boolean No false
ContainerId 使用來源容器資訊標記提供者的事件。 設定EVENT_ENABLE_PROPERTY_SOURCE_CONTAINER_TRACKING旗標。 boolean No false

子元素

元素 描述 需求
關鍵字 (在 EventProvider 中) 代表 EventProvider) 專案中關鍵字 (的 集合。 選擇性,1 或更多。
CaptureStateOnStart 代表 EventProvider 中關鍵字 (的集合,) 專案,讓要在追蹤開始時擷取的事件。 選擇性、零或 1。
CaptureStateOnSave 代表 EventProvider 中關鍵字 (的集合,) 儲存追蹤時要擷取的事件。 選擇性、零或 1。
CaptureStateOnDemand 代表 EventProvider 中關鍵字 (的集合,) 元素,讓使用者使用 wpr -capturestateondemand 命令觸發時要擷取的事件。 選擇性、零或 1。
堆疊 表示堆疊的集合。 針對 UMGL 提供者。 選擇性,完全是 1。
EventFilters 表示事件識別碼篩選準則的集合。 選擇性,完全是 1。
StackFilters 依事件識別碼表示堆疊篩選的集合。 選擇性,完全是 1。
EventNameFilters 表示事件名稱篩選準則的集合。 選擇性,完全是 1。
StackEventNameFilters 依事件名稱表示堆疊篩選的集合。 選擇性,完全是 1。
StackKeywordLevelFilter 依關鍵字和層級表示堆疊篩選的集合 選擇性,完全是 1。

父項目

元素 描述
EventProviders 表示 EventProvider 專案的集合。
設定檔 表示收集器、提供者和設定檔的集合。

備註

提供者定義順序很重要。 定義必須以下列順序出現在 .wprp 檔案中:

  1. Collectors
  2. 系統提供者
  3. 事件提供者 ()

選擇性的內部 XML 標籤會指定要啟用的關鍵字。 不同于系統提供者,沒有針對事件提供者定義的文字常數,因此必須使用十六進位樣式字串。 不過,語法與系統提供者相同。 如果未指定關鍵字,則會使用零的預設值, (ETW 會將此值視為字串0xFFFFFFFFFFFFFFFF) 。

根據預設,衍生的事件提供者具有基底提供者的所有屬性。 您可以藉由在衍生提供者中明確指定它們來覆寫它們。 如需詳細資訊,請參閱繼承

範例

下列範例會定義兩個事件提供者。

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

元素