Configurando e iniciando a sessão do agente global
A sessão de rastreamento de eventos do Agente Global registra eventos que ocorrem no início do processo de inicialização do sistema operacional. Aplicativos e drivers de dispositivo podem usar a sessão Do Agente Global para capturar rastreamentos antes que o usuário faça logon. Observe que alguns drivers de dispositivo, como drivers de dispositivo de disco, não são carregados no momento em que a sessão do Agente Global começa.
Observação
Se você estiver criando uma sessão do Agente Global no Windows Vista, considere criar uma sessão do AutoLogger .
Você usa o Registro para configurar a sessão do Agente Global. Adicione a chave GlobalLogger à seguinte chave do Registro, se ela ainda não estiver presente:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
A tabela a seguir descreve os valores que você pode definir para a chave GlobalLogger . Você deve ter privilégios de administrador para especificar esses valores do Registro. Os valores do Registro afetam todos os provedores que registram eventos na sessão do Agente Global. O valor De início é o único valor necessário para iniciar a sessão do Agente Global; todos os outros valores têm configurações padrão que são usadas se o valor não estiver presente no registro. Normalmente, você deve usar os valores padrão. Se você especificar um valor que o ETW não pode dar suporte, o ETW substituirá o valor.
Valor | Type | Descrição |
---|---|---|
Iniciar | REG_DWORD | Defina esse valor como 1 (ativado) para iniciar a sessão do Agente Global na próxima vez que o sistema for iniciado. Para impedir que a sessão seja iniciada, defina esse valor como 0 (desativado). |
BufferSize | REG_DWORD | O tamanho de cada buffer, em quilobytes. Esse valor deve ser menor que um megabyte. O ETW usa o tamanho da memória física para calcular esse valor. |
ClockType | REG_DWORD | O temporizador a ser usado ao registrar o carimbo de data/hora para cada evento.
O valor padrão é 1 (valor do contador de desempenho) no Windows Vista e posterior. Antes do Windows Vista, o valor padrão é 2 (temporizador do sistema). |
EnableKernelFlags | REG_BINARY | Use esse valor para habilitar um ou mais provedores de kernel. Se você habilitar provedores de kernel, a sessão Do Agente Global se renomeará como Agente do Kernel NT quando for iniciada. Para obter valores possíveis, consulte o membro EnableFlags do EVENT_TRACE_PROPERTIES. |
FileCounter | REG_DWORD | O número de arquivos de log de rastreamento de eventos gerados por sessões do Agente Global. O sistema incrementa esse valor até atingir o valor de FileMax. Em seguida, ele redefine o valor para 0. Esse contador impede que o sistema substitua um arquivo de log de rastreamento do Agente Global. |
FileMax | REG_DWORD | O número máximo de arquivos de log de rastreamento de eventos permitidos no sistema. Quando o número de logs de rastreamento atinge o máximo especificado, o sistema começa a substituir os logs, começando pelo mais antigo. Se o arquivo de log especificado em FileName existir, o ETW acrescentará o valor FileCounter ao nome do arquivo. Por exemplo, se o nome do arquivo de log padrão for usado, o formulário será %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl.NNNN. O valor padrão é 0, o que significa que não há no máximo. |
FileName | REG_SZ | Caminho totalmente qualificado do arquivo de log. O caminho para esse arquivo deve existir. O arquivo de log é um arquivo de log sequencial. Observe que todos os provedores que gravam eventos na sessão do Agente Global gravam eventos nesse arquivo de log. O caminho é limitado a 1024 caracteres. Se FileName não for especificado, os eventos serão gravados em %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl.
Antes do Windows Vista: O arquivo padrão é %SystemRoot%\System32\LogFiles\WMI\Trace.log. |
FlushTimer | REG_DWORD | Com que frequência, em segundos, os buffers de rastreamento são liberados à força. O tempo mínimo de liberação é de 1 segundo. Essa liberação forçada é adicional à liberação automática que ocorre quando um buffer está cheio e quando a sessão de rastreamento é interrompida. Para o caso de um agente em tempo real, um valor igual a zero (o valor padrão) significa que o tempo de liberação será definido como 1 segundo. Um agente em tempo real é quando LogFileMode é definido como EVENT_TRACE_REAL_TIME_MODE. O valor padrão é 0. Por padrão, os buffers são liberados somente quando estão cheios. |
LogFileMode | REG_DWORD | Especifica as opções de sessão de log. Para obter valores, consulte Constantes de modo de registro em log. Esses valores têm suporte no Windows Vista e posteriores. |
MaximumBuffers | REG_DWORD | O número máximo de buffers a serem alocados. Normalmente, esse valor é o número mínimo de buffers mais vinte. O ETW usa o tamanho do buffer e o tamanho da memória física para calcular esse valor. Esse valor deve ser maior ou igual ao valor de MinimumBuffers. |
Maxfilesize | REG_DWORD | O tamanho máximo, em megabytes, do arquivo de log de rastreamento de eventos. Por padrão, não há tamanho máximo do arquivo. |
MinimumBuffers | REG_DWORD | O número mínimo de buffers a serem alocados quando a sessão do Agente Global for iniciada. O número mínimo de buffers que você pode especificar é dois buffers por processador. Por exemplo, em um único computador processador, o número mínimo de buffers é dois. O valor padrão em um sistema de processador único é 0x3. |
Status | REG_DWORD | O status de inicialização do Agente Global. Se o Agente Global não for iniciado, o valor dessa chave será o código de erro Win32 apropriado. Se o Agente Global for iniciado com êxito, o valor dessa chave será ERROR_SUCCESS (0). |
Depois que o registro tiver sido modificado e o computador ser reiniciado, a sessão do Agente Global será iniciada automaticamente e será usada como qualquer outra sessão com uma exceção: use o identificador constante WMI_GLOBAL_LOGGER_ID (definido em Wmistr.h) para fazer referência à sessão do Agente Global. Essa constante pode ser usada como um argumento para qualquer função de rastreamento de eventos que aceite um identificador de sessão. Em funções que aceitam um nome de sessão, use GLOBAL_LOGGER_NAME.
O controlador do Agente Global não chama a função EnableTrace para habilitar provedores. O provedor é responsável por determinar se a sessão do Agente Global foi iniciada e, em seguida, habilitar-se.
Para determinar se a sessão do Agente Global foi iniciada, você pode chamar a função ControlTrace , definindo SessionHandle como WMI_GLOBAL_LOGGER_ID e ControlCode como EVENT_TRACE_CONTROL_QUERY. Se a chamada ControlTrace for bem-sucedida, a sessão do Agente Global existirá e o provedor poderá habilitar a si mesmo e registrar eventos na sessão do Agente Global (a função ControlTrace retornará ERROR_WMI_INSTANCE_NOT_FOUND se o Agente Global não estiver ativo).
Normalmente, o controlador é responsável por passar os sinalizadores de habilitação e o nível para o provedor quando habilita o provedor, mas como o controlador do Agente Global não habilita o provedor, é responsabilidade do provedor passar essas informações para si mesmo, se necessário.
A sessão do Agente Global é um recurso limitado e deve ser usada com moderação. Os serviços que desejam capturar informações durante o processo de inicialização devem considerar a adição da lógica do controlador a si mesmo em vez de usar a sessão do Agente Global.
Para obter detalhes sobre como iniciar uma sessão de rastreamento de eventos, consulte Configurando e iniciando uma sessão de rastreamento de eventos.
Para obter detalhes sobre como iniciar uma sessão de agente privado, consulte Configurando e iniciando uma sessão de agente privado.
Para obter detalhes sobre como iniciar uma sessão do Agente de Kernel do NT, consulte Configurando e iniciando a sessão do agente de kernel NT.