Compreensão do Windows Event Tracing_ETW

  • 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

Arquitetura

Sessão

Existem quatro tipos de sessões

Tipo de sessãoUsoLimitaçõesCaracterí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 SystemTraceProvider1. 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 AutoLogger1. 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çãoGrava 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
  • tracelog
    • Use a ferramenta tracelog do visual studio, que pode dinamicamente adicionar e remover provedores ETW, e dinamicamente adicionar e remover sessões ETW em tempo de execução
  • mc
  • etw-providers-docs