EventProvider
ETW(Windows용 이벤트 추적) 사용자 모드 공급자를 구성합니다.
요소 계층 구조
-
<
WindowsPerformanceRecorder>
-
<
Profiles>
- < EventProvider>
-
<
Profile>
-
<
Collectors>
-
<
EventCollectorId>
-
<
EventProviders>
- < EventProvider>
-
<
EventProviders>
-
<
EventCollectorId>
-
<
Collectors>
-
<
Profiles>
구문
<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>
특성 및 요소
특성
attribute | Description | 데이터 형식 | 필수 | 기본값 |
---|---|---|---|---|
ID | 이벤트 공급자를 고유하게 식별합니다. | 하나 이상의 문자를 포함해야 하며 콜론(:)이나 공백을 포함할 수 없는 문자열입니다. | Yes | |
이름 | 이벤트 공급자의 이름입니다. | 이 특성에는 다음 값 중 하나가 있을 수 있습니다.
|
Yes | |
ProcessExeFilter | 지정된 프로세스 .exe 이름에 따라 이벤트를 필터링합니다. EVENT_FILTER_DESCRIPTOR에서 필터 데이터를 설정합니다. | WPR 프로필의 EventProvider ID에 추가하는 선택적 특성입니다. 예:
|
예 | |
Base | 공급자의 기본을 나타냅니다. | 문자열 | 예 | |
NonPagedMemory | 추적 세션에 비페이징 메모리를 사용합니다. | boolean | 예 | false |
스택 | 이벤트를 사용하여 스택 캡처 | boolean | 예 | false |
SID | 기록된 이벤트의 확장 데이터에 사용자의 SID(보안 식별자)를 포함합니다. EVENT_ENABLE_PROPERTY_SID를 설정합니다. | boolean | 예 | false |
TSID | 기록된 이벤트의 확장 데이터에 터미널 세션 식별자를 포함합니다. EVENT_ENABLE_PROPERTY_TS_ID를 설정합니다. | boolean | 예 | false |
수준 | 수준 값을 나타냅니다. | 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 | 호스트 로깅 세션이 서버 사일로에서 Crimson 이벤트를 수집할 수 있도록 합니다. EVENT_ENABLE_PROPERTY_ENABLE_SILOS 플래그를 설정합니다. | boolean | 예 | false |
ContainerId | 공급자의 이벤트를 원본 컨테이너 정보로 표시합니다. EVENT_ENABLE_PROPERTY_SOURCE_CONTAINER_TRACKING 플래그를 설정합니다. | boolean | 예 | false |
자식 요소
요소 | Description | 요구 사항 |
---|---|---|
키워드(EventProvider 내) | 키워드(EventProvider 내) 요소의 컬렉션을 나타냅니다. | 선택 사항, 1 이상. |
CaptureStateOnStart | 추적 시작 시 캡처할 이벤트에 대한 키워드(EventProvider 내) 요소의 컬렉션을 나타냅니다. | 선택 사항, 0 또는 1. |
CaptureStateOnSave | 추적이 저장될 때 캡처할 이벤트에 대한 키워드(EventProvider 내) 요소의 컬렉션을 나타냅니다. | 선택 사항, 0 또는 1. |
CaptureStateOnDemand | 사용자가 명령을 사용하여 트리거 wpr -capturestateondemand 할 때 캡처할 이벤트에 대한 키워드(EventProvider) 요소의 컬렉션을 나타냅니다. |
선택 사항, 0 또는 1. |
스택 | 스택의 컬렉션을 나타냅니다. UMGL 공급자의 경우. | 선택 사항, 정확히 1입니다. |
EventFilters | 이벤트 ID 필터의 컬렉션을 나타냅니다. | 선택 사항, 정확히 1입니다. |
StackFilters | 이벤트 ID별 스택 필터 컬렉션을 나타냅니다. | 선택 사항, 정확히 1입니다. |
EventNameFilters | 이벤트 이름 필터의 컬렉션을 나타냅니다. | 선택 사항, 정확히 1입니다. |
StackEventNameFilters | 이벤트 이름으로 스택 필터의 컬렉션을 나타냅니다. | 선택 사항, 정확히 1입니다. |
StackKeywordLevelFilter | 키워드(keyword) 수준별 스택 필터 컬렉션을 나타냅니다. | 선택 사항, 정확히 1입니다. |
부모 요소
요소 | 설명 |
---|---|
EventProviders | EventProvider 요소의 컬렉션을 나타냅니다. |
프로필 | 수집기, 공급자 및 프로필의 컬렉션을 나타냅니다. |
설명
공급자 정의 순서가 중요합니다. 정의는 .wprp 파일에서 다음 순서로 표시되어야 합니다.
- 수집기
- 시스템 공급자
- 이벤트 공급자
선택적 내부 XML 태그는 사용하도록 설정할 키워드를 지정합니다. 시스템 공급자와 달리 이벤트 공급자에 대해 정의된 텍스트 상수가 없으므로 16진수 스타일 문자열을 사용해야 합니다. 그러나 구문은 시스템 공급자와 동일합니다. 키워드를 지정하지 않으면 기본값인 0이 사용됩니다(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>