Поделиться через


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>

Атрибуты и элементы

Атрибуты

Атрибут Описание Тип данных Обязательно Значение по умолчанию
Id Уникально идентифицирует поставщика событий. Строка, которая должна содержать по крайней мере один символ и не может содержать двоеточие (:) или пробелы. Да
имя; Имя поставщика событий. Этот атрибут может иметь одно из следующих значений:
  • Зарегистрированный поставщик Crimson, например Microsoft-Windows-Search-Core.

  • GUID поставщика, например "49c2c27c-fe2d-40bf-8c4e-c3fb518037e7".

  • Имя устаревшего поставщика, например IE6.

  • Имя в специальном регистре, например PerfTrack или DotNetProvider.

Да
ProcessExeFilter Фильтрует событие на основе указанного имени .exe процесса. Задает данные фильтра в EVENT_FILTER_DESCRIPTOR. Это необязательный атрибут, добавляемый к идентификатору EventProvider в профиле WPR. Пример:
  • "ProcessExeFilter="wpa.exe"

Нет
Базы Указывает базу для поставщика. строка Нет
NonPagedMemory Используйте нестраничную память для сеанса трассировки. Логическое Нет false
Стек Запись стеков с помощью события Логическое Нет false
SID Включите идентификатор безопасности (SID) пользователя в расширенные данные зарегистрированных событий. Задает EVENT_ENABLE_PROPERTY_SID. Логическое Нет false
TSID Включите идентификатор сеанса терминала в расширенные данные зарегистрированных событий. Задает EVENT_ENABLE_PROPERTY_TS_ID. Логическое Нет false
Уровень Указывает значение уровня. unsignedByte Нет Ноль, который трассировка событий Windows обрабатывает как 0xFF.
CaptureStateOnly Поставщик включается только при запуске или сохранении сеанса трассировки. Логическое Нет false
Strict Не удастся выполнить запись трассировки, если поставщик не может быть включен. Логическое Нет false
EventKey Включите ключ события в расширенные данные и задает флаг EVENT_ENABLE_PROPERTY_EVENT_KEY. Логическое Нет false
ExecludeInPrivate Отфильтруйте все события, помеченные как событие InPrivate или поступающие из процесса InPrivate. Задает флаг EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE Логическое Нет false
EnableSilos Позволяет сеансам ведения журнала узла собирать события Crimson из разрозненных серверов. Задает флаг EVENT_ENABLE_PROPERTY_ENABLE_SILOS. Логическое Нет false
ContainerId Помечает события поставщика сведениями об исходном контейнере. Задает флаг EVENT_ENABLE_PROPERTY_SOURCE_CONTAINER_TRACKING. Логическое Нет false

Дочерние элементы

Элемент Описание Требование
Ключевые слова (в EventProvider) Представляет коллекцию элементов Keyword (в EventProvider). Необязательный, 1 или более.
CaptureStateOnStart Представляет коллекцию элементов Keyword (в EventProvider) для событий, которые должны быть захвачены в начале трассировки. Необязательно, ноль или 1.
CaptureStateOnSave Представляет коллекцию элементов Keyword (в EventProvider) для событий, которые будут записываться при сохранении трассировки. Необязательно, ноль или 1.
CaptureStateOnDemand Представляет коллекцию элементов Keyword (в EventProvider) для событий, которые будут записываться при активации пользователем с wpr -capturestateondemand помощью команды . Необязательно, ноль или 1.
Стеки Представляет коллекцию стеков. Для поставщиков UMGL. Необязательный, ровно 1.
Фильтри событий Представляет коллекцию фильтров идентификаторов событий. Необязательный, ровно 1.
StackFilters Представляет коллекцию фильтров стека по идентификатору события. Необязательный, ровно 1.
EventNameFilters Представляет коллекцию фильтров имен событий. Необязательный, ровно 1.
StackEventNameFilters Представляет коллекцию фильтров стека по имени события. Необязательный, ровно 1.
StackKeywordLevelFilter Представляет коллекцию фильтров стека по ключевое слово и уровню. Необязательный, ровно 1.

Родительские элементы

Элемент Описание
EventProviders Представляет коллекцию элементов EventProvider .
Profiles Представляет коллекцию сборщиков, поставщиков и профилей.

Комментарии

Порядок определения поставщика имеет важное значение. Определения должны отображаться в wprp-файле в следующем порядке:

  1. Сборщики
  2. Системный поставщик
  3. Поставщики событий

Необязательные внутренние XML-теги указывают, какие ключевые слова следует включить. В отличие от системных поставщиков, для поставщиков событий не определены текстовые константы, поэтому необходимо использовать шестнадцатеричные строки. Однако синтаксис совпадает с синтаксисом для системного поставщика. Если ключевые слова не указаны, используется нулевое значение по умолчанию (которое обрабатывается трассировой событий Windows как строковое 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>

Elements (XElement Dynamic Property) (Elements (Динамическое свойство XElement))