Понимание трассировки событий Windows_ETW

  • Понимание трассировки событий Windows_ETW

Понимание ETW

Отфильтровано ненужная информация, полный документ см.: https://docs.microsoft.com/en-us/windows/win32/etw/event-tracing-portal

Понимание основ

https://learn.microsoft.com/en-us/windows/win32/etw/about-event-tracing

Архитектура

Сессия

Существует 4 вида сессий

Тип сессииИспользованиеОграниченияОсобенности
Сессия трассировки событий(Standard ETW)1. EVENT_TRACE_PROPERTIES2. StartTrace, создание сессии3. EnableTrace 1. EnableTrace для классического провайдера 2. EnableTraceEx для провайдера на основе манифеста4. ControlTrace  Остановка сессии- Один провайдер на основе манифеста поддерживает отправку событий максимум в 8 сессий- Один классический провайдер может обслуживать только одну сессию.- Поведение захвата провайдера сессией — последний пришедший получает приоритет.Стандартный ETW.
Сессия SystemTraceProvider1. EVENT_TRACE_PROPERTIES->EnableFlags2. StartTrace3. ControlTrace  Остановка сессии- SystemTraceProvider — это провайдер ядерных событий, предоставляющий наборпредопределенных ядерных событий.- Сессия NT Kernel Logger — это системная предустановленная сессия, записывающая ряд предопределенных системой ядерных событий- Win7/WinServer2008R2 — только сессия NT Kernel Logger может использовать SystemTraceProvider- Win8/WinServer2012 — SystemTraceProvider может предоставлять события для8 сессий логгера, из которых две фиксированные: NT Kernel Logger и Circular Kernel Context Logger.- Win10 20348 и новее: различные провайдеры системы можно контролировать отдельно.Получение системных ядерных предопределенных событий.
Сессия AutoLogger1. Изменение реестра 2. EnableTraceEx3. ControlTrace  Остановка сессии- Сессия Global Logger — это особая независимая сессия, записывающая события во время запуска системы.- Обычный AutoLogger требует ручного включения провайдера, GlobleLogger не требует.- AutoLogger не поддерживает события NT Kernel Logger, только GlobalLogger поддерживает.- Влияет на время запуска, использовать умеренноЗапись событий в период запуска ОС
Сессия Private Logger-- User-mode ETW- Используется только внутри процесса- Не учитывается в ограничении 64 параллельных сессий.Приватная для процесса

Инструменты

  • logman
  • wevtutil
    • Пример запроса xpath: wevtutil qe Security /c:2 /q:"*[System[EventID=5157]]" /f:text
  • tracelog
    • Используя инструментtracelog из viusal studio, можно динамически добавлять и удалять ETW Provider, а также динамически добавлять и удалять ETW Session в режиме выполнения
  • mc
  • etw-providers-docs