Sessão de rastreamento de agente global
Uma sessão de rastreamento do Agente Global registra eventos que ocorrem durante o processo de inicialização antes que o sistema esteja totalmente operacional, como eventos gerados por drivers de dispositivo. É uma sessão de rastreamento reservada que é incorporada ao Windows.
As sessões de rastreamento do Agente Global sempre gravam mensagens em um log de rastreamento. O Agente Global não dá suporte a sessões de rastreamento em tempo real ou sessões de rastreamento em buffer.
Como o Agente Global deve estar disponível no início do processo de inicialização do sistema operacional, ele é iniciado e configurado usando entradas do Registro (na subchave HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger ), em vez de chamadas de função. Depois de iniciar, o Agente Global se comporta como uma sessão regular de rastreamento de eventos.
A sessão de rastreamento do Agente Global usa um nome de sessão reservado, "GlobalLogger". O GUID de controle é representado pela constante GlobalLoggerGuid. Crie uma sessão de rastreamento do Agente Global e reinicie o computador para iniciar a sessão de rastreamento. Somente uma sessão de rastreamento do Agente Global pode ser executada no computador por vez.
Para criar uma sessão de rastreamento do Agente Global, use Tracelog. Ele cria automaticamente a subchave do Registro e as entradas que armazenam opções de sessão de rastreamento. A sessão de rastreamento do Agente Global é iniciada quando você reinicia o computador. Para obter mais informações, consulte Sintaxe de comando tracelog.
Para formatar as mensagens de rastreamento de uma sessão de rastreamento do Agente Global, use Tracefmt com system.tmf, um arquivo de formato de mensagem de rastreamento incluído no WDK.
Como a sessão do Agente Global é disparada por entradas do Registro, ela é executada sempre que as entradas aparecem no registro. Para impedir que a sessão do Agente Global seja iniciada sempre que o sistema for iniciado, defina o valor da entrada Iniciar como 0 ou exclua todas as entradas do Registro.
Você pode converter uma sessão de rastreamento do Agente Global em uma sessão de rastreamento do Agente do Kernel NT, rastreando assim o kernel durante o processo de inicialização. Para obter informações, consulte Sessão global do agente de tempo de inicialização
Provedores de rastreamento, como drivers no modo kernel e aplicativos de modo de usuário, podem fazer logon na sessão de rastreamento do Agente Global. Isso permite rastrear um driver ou outro provedor de rastreamento durante a inicialização do sistema. Para obter informações, consulte Registro em log na sessão do agente global
Limitações da sessão de rastreamento do agente global
A sessão de rastreamento do Agente Global é muito útil, mas é importante estar ciente de suas limitações:
Você pode executar apenas uma sessão do Agente Global por vez.
A sessão do Agente Global não envia a notificação habilitada aos provedores.
As entradas do Registro do Agente Global permanecem no registro e são efetivas até que você as redefina ou exclua manualmente ou use o comando tracelog -remove . Até redefini-los, a sessão do Agente Global é iniciada sempre que você inicia o sistema.
O agente de ACPI do Windows está permanentemente habilitado para a sessão de rastreamento do Agente Global. As mensagens de rastreamento desse agente aparecem no log de rastreamento.
Se uma sessão de rastreamento padrão for iniciada enquanto um driver estiver fazendo logon na sessão do Agente Global, o driver alterna e inicia o registro em log para a sessão de rastreamento padrão.
Entradas do Registro de Agente Global
A tabela a seguir mostra as entradas do Registro que configuram a sessão do Agente Global. Essas entradas estão na subchave HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger . Somente a entrada Iniciar é necessária.
Além das entradas do Registro nesta tabela, você também pode adicionar uma subchave ControlGUID sob a subchave GlobalLogger para representar um provedor de rastreamento, como um driver, que faz logon na sessão de rastreamento do Agente Global. Para obter informações, consulte Registro em log na Sessão do Agente Global.
Entrada | Tipo de dados | Descrição |
---|---|---|
Iniciar |
REG_DWORD |
Quando definido como 1 (ativado), a sessão do Agente Global é iniciada na próxima vez que o sistema é iniciado. 0 = desativado, 1=ativado |
BufferSize |
REG_DWORD |
Especifica o tamanho de cada buffer (em KB). O valor padrão é 0x40 (64 KB). |
ClockType |
REG_DWORD |
Especifica o temporizador usado para carimbos de data/hora da mensagem de rastreamento. A partir do Windows Vista, o valor padrão é 1. Em sistemas operacionais anteriores ao Windows Vista, o valor padrão é 2. 1 = Valor do contador de desempenho (alta resolução) 2 = Temporizador do sistema 3 = Relógio de ciclo da CPU |
EnableKernelFlags |
REG_BINARY |
Converte a sessão do Agente Global em uma sessão de rastreamento do Agente do Kernel NT e especifica os eventos incluídos no rastreamento de kernel. Para obter informações, consulte Sessão global do agente de tempo de inicialização. |
FileCounter |
REG_DWORD |
Armazena 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 |
Especifica 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. O valor padrão é 0, o que significa que não há no máximo. |
FileName |
REG_SZ |
Caminho (opcional) e nome de arquivo do arquivo de log de rastreamento de eventos. O padrão é %SystemRoot%\System32\LogFiles\WMI\trace.log. |
FlushTimer |
REG_DWORD |
Especifica com que frequência (em segundos) os buffers de rastreamento são liberados à força. Essa liberação forçada é adicional à liberação automática que ocorre sempre que um buffer está cheio e quando a sessão de rastreamento é interrompida. O valor padrão é 0. Por padrão, os buffers são liberados somente quando estão cheios. O tempo mínimo de liberação é de 1 segundo. |
LogFileMode |
REG_DWORD |
Especifica as opções de sessão de log. Com suporte apenas no Windows Vista e versões posteriores do Windows. |
MaximumBuffers |
REG_DWORD |
Especifica o número máximo de buffers que podem ser alocados para a sessão. O valor padrão é 0x19 (25). |
Maximumfilesize |
REG_DWORD |
Especifica o tamanho máximo do arquivo de log de rastreamento de eventos. Por padrão, não há tamanho máximo do arquivo. |
MinimumBuffers |
REG_DWORD |
Especifica o número de buffers alocados quando a sessão é iniciada. O valor padrão é 0x3. |
Status |
REG_DWORD |
Armazena o código de retorno da tentativa de iniciar uma sessão de rastreamento do Agente Global. Se a sessão não for iniciada, o valor dessa entrada será um código de erro Win32. Se a sessão for iniciada, o valor dessa entrada será ERROR_SUCCESS. |
Essas entradas do Registro que você cria permanecem no registro e são efetivas até que você as exclua ou altere seus valores. Portanto, após a execução da sessão do Agente Global, use o comando tracelog -remove GlobalLogger para definir o valor da entrada Iniciar como 0 e excluir as outras entradas do Registro do Agente Global. Caso contrário, a sessão do Agente Global é executada sempre que você reinicia o computador e o arquivo de log resultante pode ficar muito grande.
Constantes do modo de registro em log
A tabela a seguir exibe os valores válidos para a entrada do registro LogFileMode na subchave HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger . Essa entrada é usada para definir opções para uma sessão de rastreamento do Agente Global, incluindo aquelas para sessões de rastreamento em tempo real, sessões de rastreamento privado, registro em log circular e buffer (sem log). Essa entrada do Registro tem suporte apenas no Windows Vista e em versões posteriores do Windows.
Essa entrada do Registro corresponde ao membro LogFileMode da estrutura EVENT_TRACE_PROPERTIES. Seus valores correspondem às constantes do modo de registro em log. A estrutura EVENT_TRACE_PROPERTIES e as constantes do modo de registro em log são descritas na documentação do SDK do Microsoft Windows.
Esta tabela é exibida aqui para mostrar os valores hexadecimal das constantes. Use esses valores ou uma soma desses valores para representar a constante na entrada do Registro LogFileMode .
Valor | Constante | Descrição |
---|---|---|
0x0 |
EVENT_TRACE_FILE_MODE_NONE |
Nenhum arquivo de log de rastreamento de eventos é criado. |
0x1 |
EVENT_TRACE_FILE_MODE_SEQUENTIAL |
Os arquivos de log de rastreamento de eventos são sequenciais. |
0x2 |
EVENT_TRACE_FILE_MODE_CIRCULAR |
Os arquivos de log de rastreamento de eventos são circulares. |
0x4 |
EVENT_TRACE_FILE_MODE_APPEND |
Acrescente mensagens de rastreamento a um arquivo de log existente. Esse modo é válido somente com arquivos sequenciais. |
0x8 |
EVENT_TRACE_FILE_MODE_NEWFILE |
Crie um novo arquivo de log de rastreamento de eventos sempre que o arquivo existente atingir o valor da entrada MaximumFileSize (consulte a tabela acima). |
0x20 |
EVENT_TRACE_FILE_MODE_PREALLOCATE |
Reserva espaço para o arquivo de log de rastreamento de eventos. Válido somente com EVENT_TRACE_FILE_MODE_SEQUENTIAL ou EVENT_TRACE_FILE_MODE_CIRCULAR e não válido com EVENT_TRACE_FILE_MODE_NEWFILE. |
0x40 |
EVENT_TRACE_NONSTOPPABLE_MODE |
Uma chamada para StopTrace não interrompe a sessão de rastreamento. Esse recurso impede que os usuários interrompa as sessões de rastreamento que o sistema exige para diagnóstico e ajuste. |
0x100 |
EVENT_TRACE_REAL_TIME_MODE |
Especifica uma sessão de rastreamento em tempo real. |
0x200 |
EVENT_TRACE_DELAY_OPEN_FILE_MODE |
Apenas para uso interno. |
0x400 |
EVENT_TRACE_BUFFERING_MODE |
Os eventos são retidos nos buffers. Eles nunca são gravados em um arquivo de log ou entregues a um consumidor de rastreamento. |
0x800 |
EVENT_TRACE_PRIVATE_LOGGER_MODE |
Especifica uma sessão de rastreamento privado. Esse sinalizador não é válido para uma sessão de rastreamento do Agente Global. |
0x1000 |
EVENT_TRACE_ADD_HEADER_MODE |
Apenas para uso interno. |
0x2000 |
EVENT_TRACE_USE_KBYTES_FOR_SIZE |
Interprete o valor de MaximumFileSize em KB, em vez de MB. |
0x4000 |
EVENT_TRACE_USE_GLOBAL_SEQUENCE |
Gera números de sequência globais para mensagens de rastreamento. Esses números são exclusivos para todas as sessões de rastreamento no computador. Por padrão, as mensagens de rastreamento não têm números de sequência. |
0x8000 |
EVENT_TRACE_USE_LOCAL_SEQUENCE |
Gera números de sequência local para mensagens de rastreamento. Esses números são exclusivos dentro da sessão de rastreamento. Por padrão, as mensagens de rastreamento não têm números de sequência. |
0x10000 |
EVENT_TRACE_RELOG_MODE |
Apenas para uso interno. |
0x80000 |
EVENT_TRACE_KD_FILTER_MODE |
Redireciona as mensagens de rastreamento para o depurador de kernel e define o tamanho do buffer de rastreamento como 3 KB, o tamanho máximo do buffer para o depurador. |
0x1000000 |
EVENT_TRACE_MODE_RESERVED |
Não é válido para uma sessão de rastreamento do Agente Global. |
0x01000000 |
EVENT_TRACE_USE_PAGED_MEMORY |
Alocar buffers de sessão de rastreamento da memória paginável. Por padrão, os buffers são alocados de memória não pageável. |