Сегодня я попытаюсь рассказать про:
- Теоретические основы службы трассировки Windows
- Создание своей сессии ETW
- Использование event tracing API для работы с ETW
- Использование tracerpt и xperf для работы с ETW
Теоретические основы службы трассировки Windows
Event Tracing for Windows (ETW) — это служба, которая позволяет получать события от одного или нескольких поставщиков событий в режиме реального времени или из файла *.etl за некоторый временной период. Не понятно? Сейчас разберемся!
Для того, чтобы понять принцип работы ETW, необходимо разобраться со структурой этой службы
Архитектура ETW включает в себя 4 элемента
- поставщики событий (providers)
- потребители событий (consumers)
- контроллеры ETW (controllers)
- сессии ETW (event tracing sessions)
Принцип работы состоит в следующем.
В системе зарегистрировано некоторое число поставщиков событий, т.е. приложений, которые могут делиться своими событиями с сессиями ETW. Так же в этой системе есть некоторое число активных сессий ETW, которые могут потреблять события от одного или нескольких поставщиков и предоставлять их пользователю либо в режиме реального времени, либо записывать все события от поставщиков в файл логирования (*.etl). И управляют всем этим движением контроллеры.
А теперь рассмотрим каждый элемент рассмотренной выше архитектуры подробнее, чтобы окончательно разобраться с принципом работы!