Configurando e iniciando uma sessão do AutoLogger
A sessão de rastreamento de eventos do AutoLogger 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 AutoLogger para capturar rastreamentos antes que o usuário faça login. 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 AutoLogger começa.
O AutoLogger difere do Global Logger das seguintes maneiras:
- Você pode especificar uma ou mais sessões do AutoLogger (o Global Logger era uma única sessão na qual todos registravam eventos).
- O AutoLogger envia uma notificação de ativação para os provedores quando a sessão é iniciada (o Global Logger não enviou uma notificação de habilitação para os provedores, então os provedores tiveram que confiar em outros meios para saber se a sessão do Global Logger foi iniciada para começar a registrar eventos).
- O AutoLogger não suporta o registo de eventos NT Kernel Logger (consulte o EnableFlags membro do EVENT_TRACE_PROPERTIES). Para registrar eventos do NT Kernel Logger, você deve usar o Global Logger.
Para obter mais informações sobre a sessão do Global Logger, consulte Configurando e iniciando a sessão do Global Logger.
Observação
O ETW suporta o AutoLogger no Windows Vista e posterior. Use o Global Logger em sistemas operacionais anteriores.
Use o registro para configurar a sessão AutoLogger. Adicione a seguinte chave do Registro, se ela ainda não estiver presente:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
Sob a chave Autologger, crie uma chave para cada sessão do AutoLogger que pretenda configurar, conforme mostrado no exemplo a seguir.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
\Logger Session A
\Logger Session B
\Logger Session C
Para cada sessão, crie uma chave para cada provedor que você deseja habilitar para a sessão. Use o GUID do provedor como a chave.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
\Logger Session A
\{ProviderGuid1}
\{ProviderGuid2}
\Logger Session B
\Logger Session C
A tabela a seguir descreve os valores que você pode definir para cada sessão do AutoLogger. Você deve ter privilégios de administrador para especificar esses valores do Registro. Os valores Start e Guid são os únicos necessários para iniciar a sessão do AutoLogger; todos os outros valores têm configurações padrão que são utilizadas caso o valor não esteja presente no registo. Normalmente, você deve usar os valores padrão. Se você especificar um valor que o ETW não pode suportar, o ETW substituirá o valor.
Valor | Tipo | Descrição |
---|---|---|
Tamanho do Buffer | REG_DWORD | O tamanho de cada buffer, em kilobytes. Deve ser inferior a 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). |
DisableRealtimePersistence | REG_DWORD | Para desativar a persistência em tempo real, defina esse valor como 1. O padrão é 0 (habilitado) para sessões em tempo real. Se a persistência em tempo real estiver ativada, os eventos em tempo real que não foram entregues no momento em que o computador foi desligado serão persistentes. Os eventos serão então entregues ao consumidor na próxima vez que este se ligar à sessão. |
FileCounter | REG_DWORD | Não defina nem modifique este valor. Esse valor é o número de série usado para incrementar o nome do arquivo de log se FileMax for especificado. Se o valor não for válido, 1 será assumido. |
Nome do arquivo | REG_SZ | O caminho totalmente qualificado do arquivo de log. O caminho para esse arquivo deve existir. O arquivo de log é um arquivo de log sequencial. O caminho é limitado a 1024 caracteres. Se FileName |
FileMax | REG_DWORD | O número máximo de instâncias do arquivo de log que o ETW cria. Se o ficheiro de registo especificado em FileName existir, o ETW acrescenta o valor FileCounter ao nome do ficheiro. Por exemplo, se o nome do arquivo de log padrão for usado, o formulário será %SystemRoot%\System32\LogFiles\WMI< sessionname>.etl. NNNN. Na primeira vez que o computador é iniciado, o nome do arquivo é <sessionname>.etl.0001, a segunda vez que o nome do arquivo é <sessionname>.etl.0002 e assim por diante. Se FileMax for 3, na quarta reinicialização do computador, o ETW redefine o contador para 1 e substitui <sessionname>.etl.0001, se existir. O número máximo de instâncias do arquivo de log suportadas é 16. Não use esse recurso com o modo de arquivo de log EVENT_TRACE_FILE_MODE_NEWFILE. |
FlushTimer | REG_DWORD | Com que frequência, em segundos, os buffers de vestígios são lavados à força. O tempo mínimo de descarga é 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 registrador em tempo real, um valor zero (o valor padrão) significa que o tempo de liberação será definido como 1 segundo. Um registrador em tempo real é ativado quando LogFileMode está 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. |
Guid | REG_SZ | Uma cadeia de caracteres que contém um GUID que identifica exclusivamente a sessão. Este valor é obrigatório. |
ModoDeArquivoDeLog | REG_DWORD | Especifique um ou mais modos de log. Para obter valores possíveis, consulte Constantes do modo de registo. O padrão é EVENT_TRACE_FILE_MODE_SEQUENTIAL. Em vez de gravar em um arquivo de log, você pode especificar EVENT_TRACE_BUFFERING_MODE ou EVENT_TRACE_REAL_TIME_MODE. Especificar EVENT_TRACE_BUFFERING_MODE evita o custo de descarregar o conteúdo da sessão para o disco quando o sistema de arquivos se torna disponível. Ao utilizar EVENT_TRACE_BUFFERING_MODE, faz com que o sistema ignore MaximumBuffers, uma vez que o tamanho do buffer é o produto de MinimumBuffers e BufferSize. As sessões do AutoLogger não suportam o modo de registo EVENT_TRACE_FILE_MODE_NEWFILE. Se EVENT_TRACE_FILE_MODE_APPEND for especificado, BufferSize deve ser explicitamente fornecido e deve ser o mesmo tanto no logger quanto no ficheiro que está sendo anexado. |
MaxFileSize | REG_DWORD | O tamanho máximo do arquivo de log, em megabytes. A sessão é fechada quando o tamanho máximo é atingido, a menos que você esteja no modo de arquivo de log circular. Para especificar nenhum limite, defina o valor como 0. O padrão é 100 MB, se não estiver definido. O comportamento que ocorre quando o tamanho máximo do arquivo é atingido depende do valor de LogFileMode. |
BuffersMáximos | REG_DWORD | O número máximo de buffers a alocar. 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. |
MinimumBuffers | REG_DWORD | O número mínimo de buffers para alocar na inicialização. O número mínimo de buffers que você pode especificar é de dois buffers por processador. Por exemplo, em um único computador processador, o número mínimo de buffers é dois. |
Iniciar | REG_DWORD | Para que a sessão do AutoLogger seja iniciada na próxima vez que o computador for reiniciado, defina este valor como 1; caso contrário, defina esse valor como 0. |
Status | REG_DWORD | O estado de inicialização do AutoLogger. Se o AutoLogger falhou ao iniciar, o valor dessa chave é o código de erro Win32 apropriado. Se o AutoLogger tiver sido iniciado com êxito, o valor dessa chave será ERROR_SUCCESS (0). |
Boot | REG_DWORD | Esse recurso não deve ser usado fora de cenários de depuração. Se essa chave do Registro estiver definida como 1, o autologger será iniciado mais cedo do que o normal durante a inicialização do kernel, permitindo capturar eventos durante a inicialização de muitos subsistemas importantes do kernel. No entanto, ativar essa opção tem um impacto negativo nos tempos de inicialização e impõe restrições adicionais ao autologger. Se esse recurso estiver habilitado, o GUID da sessão do autologger deverá ser preenchido e muitas outras configurações do autologger podem não funcionar. Essa chave é suportada no Windows Server 2022 e posterior. |
A tabela a seguir descreve os valores que você pode definir para cada provedor que deseja habilitar para sua sessão. Você deve ter privilégios de administrador para especificar esses valores do Registro. Se você especificar um valor que o ETW não pode suportar, o ETW substituirá o valor.
Valor | Tipo | Descrição |
---|---|---|
ativado | REG_DWORD | Determina se o provedor está habilitado. Para habilitar o provedor, defina esse valor como 1. Para desativar o provedor, defina esse valor como 0. O padrão é 0. |
EnableFlags | REG_DWORD | Valor definido pelo provedor que especifica a classe de eventos para os quais o provedor gera eventos. Para obter detalhes, consulte o parâmetro EnableFlags da função EnableTrace. Especifique este nome do valor se o provedor não oferecer suporte a MatchAnyKeyword ou MatchAllKeyword. |
EnableLevel | REG_DWORD | Valor definido pelo provedor que especifica o nível de detalhe incluído no evento. Por exemplo, você pode usar esse valor para indicar o nível de gravidade dos eventos (informativos, aviso, erros) gerados pelo provedor. Para obter uma lista de níveis predefinidos, consulte o parâmetro nível da função EnableTraceEx. |
EnableProperty | REG_DWORD | Use esse valor para incluir um ou mais dos seguintes itens no arquivo de log:
|
MatchAnyKeyword | REG_QWORD | Bitmask de palavras-chave que determinam a categoria de eventos que você deseja que o provedor escreva. O provedor grava o evento se qualquer um dos bits de palavra-chave do evento corresponder a qualquer um dos bits definidos nessa máscara. Para especificar que o provedor grave todos os eventos, defina esse valor como zero. Para obter um exemplo, consulte a seção Comentários da funçãoEnableTraceEx. |
MatchAllKeyword | REG_QWORD | Esta máscara de bits é opcional. Essa máscara restringe ainda mais a categoria de eventos que você deseja que o provedor escreva. Se a palavra-chave do evento atender à condição MatchAnyKeyword, o provedor gravará o evento somente se todos os bits dessa máscara existirem na palavra-chave do evento. Esta máscara não é usada se MatchAnyKeyword for zero. Para obter um exemplo, consulte a seção Comentários da funçãoEnableTraceEx. |
Após a modificação do registo, a sessão do AutoLogger é iniciada da próxima vez que o computador for reiniciado. A sessão AutoLogger chama a função EnableTraceEx para habilitar os fornecedores.
As sessões do AutoLogger aumentam o tempo de inicialização do sistema e devem ser usadas com moderação. Os serviços que desejam capturar informações durante o processo de inicialização devem considerar adicionar a lógica do controlador a si mesmo, em vez de usar a sessão do AutoLogger.
Para interromper uma sessão do AutoLogger, chame a função ControlTrace. O nome da sessão que você passa para a função é o nome da chave do Registro que você usou para definir a sessão no Registro.
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 logger privado, consulte Configurando e iniciando uma sessão de logger privado.
Para obter detalhes sobre como iniciar uma sessão do NT Kernel Logger, consulte Configurando e iniciando a sessão do NT Kernel Logger.