EventProvider
設定 Windows 事件追蹤 (ETW) 使用者模式提供者。
元素階層
-
<
WindowsPerformanceRecorder>
-
<
配置 檔>
- < EventProvider>
-
<
配置 檔>
-
<
收藏家>
-
<
EventCollectorId>
-
<
EventProviders>
- < EventProvider>
-
<
EventProviders>
-
<
EventCollectorId>
-
<
收藏家>
-
<
配置 檔>
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 | |
名稱 | 事件提供者的名稱。 | 此屬性可以有下列其中一個值:
|
Yes | |
ProcessExeFilter | 根據指定的進程.exe名稱篩選事件。 設定EVENT_FILTER_DESCRIPTOR中的篩選資料。 | 這是您在 WPR 設定檔中新增至 EventProvider 識別碼 的選擇性屬性。 例如:
|
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 檔案中:
- Collectors
- 系統提供者
- 事件提供者 ()
選擇性的內部 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>