Configurando e iniciando uma sessão SystemTraceProvider
O SystemTraceProvider é um provedor de kernel com um conjunto predefinido de eventos de kernel com suporte no Windows 7, Windows Server 2008 R2 e posterior. No Windows 7 e no Windows Server 2008 R2, o SystemTraceProvider só pôde ser usado para a sessão do Agente do Kernel NT.
Em Windows 8, Windows Server 2012 e posterior, o SystemTraceProvider pode ser multiplexado para até 8 sessões de agente. Os dois primeiros slots para sessões de agente são reservados para o Agente do Kernel NT e o Agente de Contexto do Kernel Circular.
Para obter mais informações sobre como usar a sessão do Agente do Kernel NT como um provedor de rastreamento, consulte Configurando e iniciando a sessão do agente do kernel NT.
No Windows 10 build do SDK 20348 e posterior, o SystemTraceProvider pode ser configurado por meio de provedores de sistema separados, que podem ser controlados com EnableTraceEx2, como provedores de eventos padrão do Rastreamento de Eventos para Windows. Para obter uma lista completa de provedores de sistema, palavras-chave e sinalizadores e grupos herdados correspondentes, consulte Provedores de sistema
Habilitar uma sessão SystemTraceProvider
Para habilitar o SystemTraceProvider para iniciar uma sessão diferente do Agente do Kernel NT, execute o seguinte comando:
tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH
Para habilitar programaticamente o SystemTraceProvider para iniciar uma sessão diferente do Agente do Kernel NT, use as etapas a seguir.
Defina um nome de agente privado.
#define PRIVATE_LOGGER_NAME L"Alguma sessão de rastreamento privado"
No controlador, defina os seguintes membros da estrutura EVENT_TRACE_PROPERTIES .
Defina LogFileMode como EVENT_TRACE_SYSTEM_LOGGER_MODE.
Defina LoggerName como agente privado, em vez de KERNEL_LOGGER_NAME.
Verifique se o membro Wnode.Guid da estrutura EVENT_TRACE_PROPERTIES não está definido como SystemTraceControlGuid. Você deve atribuir um novo GUID a esse membro.
No consumidor, defina o membro LoggerName da estrutura EVENT_TRACE_LOGFILE para esse agente privado.
Observação
Se você quiser que um processo não administrador ou não TCB possa iniciar uma sessão de rastreamento de criação de perfil usando o SystemTraceProvider em nome de aplicativos de terceiros, você precisará conceder o privilégio de perfil do usuário e, em seguida, adicionar esse usuário ao GUID da sessão (criado para a sessão do agente) e ao GUID do provedor de rastreamento do sistema para habilitar o provedor de rastreamento do sistema. Para obter mais informações, consulte a função EventAccessControl .
Tópicos relacionados
Configurando e iniciando uma sessão de agente privado
Configurando e iniciando uma sessão do AutoLogger
Configurando e iniciando uma sessão de rastreamento de eventos
Configurando e iniciando a sessão do agente do kernel NT
Atualizando uma sessão de rastreamento de eventos