다음을 통해 공유


EventProvider

ETW(Windows용 이벤트 추적) 사용자 모드 공급자를 구성합니다.

요소 계층 구조

구문

<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
이름 이벤트 공급자의 이름입니다. 이 특성에는 다음 값 중 하나가 있을 수 있습니다.
  • 등록된 Crimson 공급자(예: “Microsoft-Windows-Search-Core”)입니다.

  • 공급자 GUID(예: “49c2c27c-fe2d-40bf-8c4e-c3fb518037e7”)입니다.

  • 레거시 공급자의 이름(예: “IE6”)입니다.

  • 특수한 경우의 이름(예: “PerfTrack” 또는 “DotNetProvider”)입니다.

Yes
ProcessExeFilter 지정된 프로세스 .exe 이름에 따라 이벤트를 필터링합니다. EVENT_FILTER_DESCRIPTOR에서 필터 데이터를 설정합니다. WPR 프로필의 EventProvider ID에 추가하는 선택적 특성입니다. 예:
  • "ProcessExeFilter="wpa.exe"

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 파일에서 다음 순서로 표시되어야 합니다.

  1. 수집기
  2. 시스템 공급자
  3. 이벤트 공급자

선택적 내부 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>

요소