Diretivas INF AddAutoLogger e UpdateAutoLogger

As diretivas AddAutoLogger e UpdateAutoLogger são usadas em um INF DDInstall. Seção Eventos. Eles especificam características para sessões do ETW ( Rastreamento de Eventos para Windows ) AutoLogger que registram eventos que ocorrem no início do processo de inicialização do sistema operacional. Essas diretivas têm suporte a partir de Windows 11.

[DDInstall.Events] 

AddAutoLogger=session-name,{SessionGUID},add-autologger-install-section 
UpdateAutoLogger=session-name,update-autologger-install-section 
... 

Entradas

session-name
Especifica o nome da sessão do AutoLogger que será adicionada. Esse nome precisa ser exclusivo entre o conjunto de sessões do AutoLogger em um computador. É recomendável que o nome da sessão inclua o nome da sua empresa ou uma abreviação do nome da sua empresa para que ele não entre em conflito com o nome de uma sessão de outra empresa.

SessionGUID
Especifica o valor de GUID que identifica a sessão do AutoLogger. Isso pode ser expresso como um valor GUID explícito do formulário {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} ou como um token %strkey% definido {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} como em uma seção Strings do arquivo INF.

add-autologger-install-section
Faz referência a uma seção definida pelo gravador INF que contém informações para registrar o AutoLogger. Para obter mais informações, consulte a seção Comentários a seguir.

update-autologger-install-section
Faz referência a uma seção definida pelo gravador INF que contém informações para adicionar provedores a um AutoLogger existente. Para obter mais informações, consulte a seção Comentários a seguir.

Comentários

Para obter mais informações sobre AutoLoggers, consulte Configurando e iniciando uma sessão do AutoLogger.

Cada nome de seção criado pelo inf-writer deve ser exclusivo dentro do arquivo INF e deve seguir as regras gerais para definir nomes de seção. Para obter mais informações sobre essas regras, consulte Regras de sintaxe geral para arquivos INF.

Uma diretiva AddAutoLogger deve referenciar um nome add-autologger-install-section em outro lugar no arquivo INF. Cada seção tem o seguinte formato:

[add-autologger-install-section] 

Start=<0 | 1> 
[BufferSize=buffer-size] 
[ClockType=clock-type] 
[DisableRealtimePersistence= <0 | 1>] 
[FileName=path-to-file] 
[FileMax=file-max]
[FlushTimer=flush-timer] 
[LogFileMode=log-file-mode] 
[MaxFileSize=max-file-size] 
[MaximumBuffers=max-buffers] 
[MinimumBuffers=min-buffers] 

(AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section) 
… 

Cada add-autologger-install-section deve fornecer Start. Opcionalmente, especifique um ou mais provedores de AutoLogger para o AutoLogger usando AddAutoLoggerProvider, cada um em uma linha separada. Para obter mais informações sobre provedores de AutoLogger em um arquivo INF, consulte Adicionando provedores de AutoLogger abaixo.

Uma diretiva UpdateAutoLogger deve referenciar uma seção update-autologger-install nomeada em outro lugar no arquivo INF. Cada seção desse tipo tem o seguinte formato:

[update-autologger-install-section] 

(AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section) 
… 

Cada update-autologger-install-section pode especificar um ou mais provedores de AutoLogger usando AddAutoLoggerProvider, cada um em uma linha separada. Para obter mais informações sobre provedores de AutoLogger em um arquivo INF, consulte Adicionando provedores de AutoLogger abaixo.

Entradas e valores de Add-AutoLogger-Install-Section

Começar=0 | 1
Especifica se o AutoLogger será iniciado na próxima vez que o computador for reiniciado. Para iniciar o AutoLogger, defina esse valor como 1, caso contrário, defina esse valor como 0.

Buffersize=tamanho do buffer
Opcionalmente, especifica o tamanho de cada buffer, em quilobytes. BufferSize deve ser menor que um megabyte. O ETW usa o tamanho da memória física para calcular esse valor se ele não estiver definido.

ClockType=tipo de relógio
Opcionalmente, especifica o temporizador a ser usado ao registrar o carimbo de data/hora para cada evento usando os valores numéricos a seguir, expressos em decimal ou, conforme mostrado na lista a seguir, em notação hexadecimal. Se omitido, o padrão será 0x1 (valor do contador de desempenho).

0x1 (valor do contador de desempenho)

0x2 (Temporizador do Sistema)

0x3 (Contador de Ciclo de CPU)

Para obter uma descrição de cada tipo de relógio, consulte o membro ClientContext do WNODE_HEADER.

DisableRealtimePersistence=0 | 1
Opcionalmente, permite desabilitar a persistência em tempo real definindo o valor como 1. O padrão é 0 (habilitado). Se a persistência em tempo real estiver habilitada, os eventos em tempo real que não foram entregues no momento em que o computador foi desligado serão persistidos. Os eventos serão entregues ao consumidor na próxima vez que o consumidor se conectar à sessão.

Filename=nome do arquivo
Opcionalmente, especifica o caminho totalmente qualificado do arquivo de log. Se o caminho não existir, haverá uma criação de melhor esforço na primeira vez que o AutoLogger for iniciado. O comprimento de FileName é limitado a 1024 caracteres. O arquivo é um arquivo de log sequencial. O caminho do arquivo padrão é %DriverData%\<SessionName.etl>.

FileMax=file-max
Opcionalmente, especifica o número máximo de instâncias do arquivo de log que o ETW cria. Depois que o número máximo de arquivos tiver sido criado, o ETW substituirá o primeiro arquivo, se ele existir. O número máximo de instâncias do arquivo de log com suporte é 16. Não use esse recurso com o EVENT_TRACE_FILE_MODE_NEWLINE LogFileMode.

FlushTimer=temporizador de liberação
Opcionalmente, especifica 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. O valor padrão é 0. Por padrão, os buffers são liberados somente quando estão cheios.

LogFileMode=log-file-mode
Opcionalmente, especifica um ou mais modos de log. Para obter valores possíveis, consulte Constantes do modo de registro em log. O valor padrão é 0x1 (EVENT_TRACE_FILE_MODE_SEQUENTIAL).

Maxfilesize=max-file-size
Opcionalmente, especifica o tamanho máximo do arquivo de log, em megabytes. A sessão é fechada quando o tamanho máximo é atingido, a menos que EVENT_TRACE_FILE_MODE_CIRCULAR seja especificado em LogFileMode. Para não especificar nenhum limite, defina o valor como 0. O valor padrão é 100 mb. O comportamento que ocorre quando o tamanho máximo do arquivo é atingido depende do valor de LogFileMode.

MaximumBuffers=máximo de buffers
Opcionalmente, especifica o número máximo de buffers a serem alocados, normalmente o número mínimo de buffers mais vinte. Esse valor deve ser maior ou igual ao valor de MinimumBuffers.

MinimumBuffers=buffers mínimos
Opcionalmente, especifica o número mínimo de buffers a serem alocados na inicialização. O número mínimo de buffers que você pode especificar é dois buffers por processador.

AddAutoLoggerProvider={ProviderGUID},autologger-provider-install-section
Opcionalmente, especifica um provedor com uma sub-diretiva que faz referência a um inf-writer-defined autologger-provider-install-section em outro lugar no arquivo INF. Para obter mais informações, consulte a seção Adicionando provedores de AutoLogger a seguir.

Adicionando provedores de AutoLogger

Nas seções add-autologger-install-section e update-autologger-install-section , você pode especificar provedores que deseja habilitar na sessão usando a diretiva AddAutoLoggerProvider .

O ProviderGUID deve ser um valor GUID que identifique o provedor do AutoLogger. Isso pode ser expresso como um valor GUID explícito do formulário {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnn} ou como um token %strkey% definido como {nnnnnnnn-nnnn-nnnn-nnnn-nnnn-nnnnnnnnnn} em uma seção Strings do arquivo INF.

Uma sub-diretiva AddAutoLoggerProvider também deve referenciar uma autologger-provider-install-section em outro lugar no arquivo. Cada seção desse tipo tem o seguinte formato:

[autologger-provider-install-section] 

[Enabled=<0 | 1>] 
[EnableFlags=enable-flags] 
[EnableLevel=enable-level] 
[EnablePropety=enable-property] 
[MatchAnyKeyword=match-any-keyword] 
[MatchAllKeyword=match-all-keyword] 

Entradas e valores de AutoLogger-Provider-Install-Section

Habilitado=0 | 1
Opcionalmente, fornece se o provedor está habilitado. Para habilitar o provedor, defina esse valor como 1. Para desabilitar, defina o valor como 0. O valor padrão é 0.

EnableFlags=enable-flags
Opcionalmente, especifica a classe de eventos para os quais o provedor gera eventos. Para obter detalhes, consulte o parâmetro EnableFlags da função EnableTraceEx . Especifique esse nome de valor se o provedor não oferecer suporte a MatchAnyKeyword ou MatchAllKeyword.

EnableLevel=nível de habilitação
Opcionalmente, fornece o nível de detalhes incluído no evento. Para obter uma lista de níveis predefinidos, consulte o parâmetro Level da função EnableTraceEx .

EnableProperty=enable-property
Opcionalmente, fornece a inclusão de um ou mais dos seguintes itens no arquivo de log:

0x00000001 (EVENT_ENABLE_PROPERTY_SID) = Incluir nos dados estendidos o SID (identificador de segurança) do usuário.

0x00000002 (EVENT_ENABLE_PROPERTY_TS_ID) = Incluir nos dados estendidos o identificador de sessão do terminal.

0x00000004 (EVENT_ENABLE_PROPERTY_STACK_TRACE) = Incluir nos dados estendidos um rastreamento de pilha de chamadas para eventos gravados usando EventWrite.

0x00000010 (EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0) = Filtra todos os eventos que não têm um palavra-chave diferente de zero especificado.

0x00000020 (EVENT_ENABLE_PROPERTY_PROVIDER_GROUP) = Indica que essa chamada para EnableTraceEx2 deve habilitar um Grupo de Provedores em vez de um provedor de eventos individual.

0x00000080 (EVENT_ENABLE_PROPERTY_PROCESS_START_KEY) = Inclua a chave inicial do processo nos dados estendidos.

0x00000100 (EVENT_ENABLE_PROPERTY_EVENT_KEY) = Inclua a chave de evento nos dados estendidos.

0x00000200 (EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE) = Filtra todos os eventos marcados como um evento InPrivate ou provenientes de um processo marcado como InPrivate.

MatchAnyKeyword=match-any-palavra-chave
Opcionalmente, fornece uma máscara de bits de palavras-chave que determinam a categoria de eventos que você deseja que o provedor grave. O provedor gravará o evento se qualquer um dos bits palavra-chave do evento corresponder a qualquer um dos bits definidos nessa máscara. Para especificar que o provedor grava todos os eventos, defina esse valor como zero. Para obter um exemplo, consulte a seção Comentários da função EnableTraceEx .

MatchAllKeyword=match-all-palavra-chave
Opcionalmente, restringe a categoria de eventos que você deseja que o provedor escreva. Se o palavra-chave do evento atender à condição MatchAnyKeyword, o provedor gravará o evento somente se todos os bits nessa máscara existirem no palavra-chave do evento. Essa máscara não será usada se MatchAnyKeyword for zero. Para obter um exemplo, consulte a seção Comentários da função EnableTraceEx .

Exemplos

[Contoso_Add_AutoLogger_Inst] 
Start = 1 
FileName = %%DriverData%%\Contoso\AutoLoggerLogFile.etl  
AddAutoLoggerProvider = {4b8b1947-ae4d-54e2-826a-1aee78ef05b2}, Contoso_Provider_1_Inst

[Contoso_Update_AutoLogger_Inst] 
AddAutoLoggerProvider= {a55d5a23-1a5b-580a-2be5-d7188f43fae1}, Contoso_Provider_2_Inst

[Contoso_Provider_1_Inst] 
Enabled = 1
EnableProperty = 0x00000001

[Contoso_Provider_2_Inst] 
Enabled = 1 

Compatibilidade herdada

As diretivas AddAutoLogger e UpdateAutoLogger têm suporte a partir de Windows 11. Para configurar um AutoLogger em um sistema operacional de nível inferior, use a diretiva AddReg .

[Contoso_AutoLogger_AddReg] 
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>,Start,0x00010001,1 
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>,GUID,,{autologger-guid} 
HKLM,SYSTEM\CurrentControlSet\Control\WMI\Autologger\<autologger-session-name>\{autologger-provider-guid},Enabled,0x00010001,1 

Consulte Também

DDInstall. Eventos