Как использовать ETW из клиента C ++ для Windows - PullRequest
13 голосов
/ 25 января 2010

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

Ответы [ 2 ]

16 голосов
/ 25 января 2010

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

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

7 голосов
/ 28 ноября 2014

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

...