Как использовать ETW из клиента Windows С++

Я изучаю трассировку событий для Windows (ETW), чтобы позволить клиенту окна пользовательского режима записывать информацию трассировки. Существующая документация - это, мягко говоря, безумно неполная. То, что действительно поможет, - это простой пример С++, который записывает трассировочные сообщения с использованием ETW. Существует ли такой пример? Есть ли другая документация ETW, которую вы могли бы порекомендовать?

Ответ 1

Чтобы написать Поставщик для ETW, у вас есть два варианта написания его как поставщика на основе манифеста ( предпочтительнее для Vista или выше) или классический поставщик для поддержки старых версий. Если на основе манифеста находится подход, с которым вы хотите пойти, тогда посмотрите пример здесь. Кроме того, здесь вы найдете классический пример поставщика.

Я предполагаю, что вы хотите использовать подход, основанный на манифестах, как лучший и можете поддерживать до 8 сеансов. Первый шаг для провайдера, основанного на манифестах, - это зарегистрировать событие, используя EventRegister, а затем записать в это через EventWrite или EventWriteString.

Ответ 2

Этот документ от Microsoft является хорошим, чтобы начать с здесь