Compartilhar via


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.