Compreensão do Windows Event Tracing_ETW
Categories:
- Compreensão do Windows Event Tracing_ETW
Compreensão do ETW
Filtrando algumas informações desnecessárias, consulte o documento completo em: https://docs.microsoft.com/en-us/windows/win32/etw/event-tracing-portal
Compreensão dos Fundamentos
https://learn.microsoft.com/en-us/windows/win32/etw/about-event-tracing

Sessão
Existem quatro tipos de sessões
| Tipo de sessão | Uso | Limitações | Características |
|---|---|---|---|
| Sessão de Rastreamento de Eventos(ETW padrão) | 1. EVENT_TRACE_PROPERTIES2. StartTrace, cria a sessão3. EnableTrace 1. EnableTrace para provedor clássico 2. EnableTraceEx para provedor baseado em manifesto4. ControlTrace interrompe a sessão | - Um provedor baseado em manifesto só suporta fornecer eventos para até 8 sessões- Um provedor clássico só pode servir a uma sessão.- O comportamento de preemptação de provedor da sessão é “último a chegar”. | ETW padrão. |
| Sessão SystemTraceProvider | 1. EVENT_TRACE_PROPERTIES->EnableFlags2. StartTrace3. ControlTrace interrompe a sessão | - SystemTraceProvider é um provedor de eventos do kernel, oferecendo um conjunto de eventos de kernel pré-definidos.- Sessão NT Kernel Logger é uma sessão predefinida do sistema que grava uma série de eventos de kernel predefinidos.- Win7/WinServer2008R2 apenas a sessão NT Kernel Logger pode usar SystemTraceProvider- Win8/WinServer2012 o SystemTraceProvider pode fornecer eventos a 8 sessões logger, das quais duas são fixas como NT Kernel Logger e Circular Kernel Context Logger.- Após Win10 20348, cada provedor do Sistema pode ser controlado separadamente. | Obtém eventos de kernel pré-definidos pelo sistema. |
| Sessão AutoLogger | 1. Modificar registro 2. EnableTraceEx3. ControlTrace interrompe a sessão | - Sessão Global Logger é uma sessão especial independente que grava eventos durante a inicialização do sistema.- AutoLogger comum precisa habilitar provedor por conta própria, GlobleLogger não precisa.- AutoLogger não suporta eventos NT Kernel Logger, apenas GlobalLogger suporta.- Afeta o tempo de inicialização, use com moderação | Grava eventos durante a inicialização do sistema |
| Sessão Private Logger | - | - ETW em modo usuário- Uso apenas dentro do processo- Não conta para o limite de 64 sessões paralelas. | Privado ao processo |
Ferramentas
- logman
- wevtutil
- Exemplo de consulta xpath:
wevtutil qe Security /c:2 /q:"*[System[EventID=5157]]" /f:text
- Exemplo de consulta xpath:
- tracelog
- Use a ferramenta
tracelogdo visual studio, que pode dinamicamente adicionar e remover provedores ETW, e dinamicamente adicionar e remover sessões ETW em tempo de execução
- Use a ferramenta
- mc
- etw-providers-docs