Понимание трассировки событий Windows_ETW
Categories:
- Понимание трассировки событий 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. |
| Сессия SystemTraceProvider | 1. 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 и новее: различные провайдеры системы можно контролировать отдельно. | Получение системных ядерных предопределенных событий. |
| Сессия AutoLogger | 1. Изменение реестра 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
- Пример запроса xpath:
- tracelog
- Используя инструмент
tracelogиз viusal studio, можно динамически добавлять и удалять ETW Provider, а также динамически добавлять и удалять ETW Session в режиме выполнения
- Используя инструмент
- mc
- etw-providers-docs