Condividi tramite


Direttive INF AddAutoLogger e UpdateAutoLogger

Le direttive AddAutoLogger e UpdateAutoLogger vengono usate all'interno di un inF DDInstall. Sezione Eventi. Specificano le caratteristiche per le sessioni AutoLogger di Event Tracing for Windows (ETW) che registrano gli eventi che si verificano nelle prime fasi del processo di avvio del sistema operativo. Queste direttive sono supportate a partire da Windows 11.

[DDInstall.Events] 

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

Voci

session-name
Specifica il nome della sessione AutoLogger che verrà aggiunta. Questo nome deve essere univoco tra il set di sessioni AutoLogger in un computer. È consigliabile che il nome della sessione includa il nome della società o un'abbreviazione del nome della società in modo che non sia in conflitto con il nome di una sessione di un'altra società.

SessionGUID
Specifica il valore GUID che identifica la sessione autoLogger. Può essere espresso come valore GUID esplicito del form {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} o come token %strkey% definito in {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} in una sezione Strings del file INF.

add-autologger-install-section
Fa riferimento a una sezione definita dal writer INF che contiene informazioni per la registrazione di AutoLogger. Per altre informazioni, vedere la sezione Osservazioni seguente.

update-autologger-install-section
Fa riferimento a una sezione definita dal writer INF che contiene informazioni per l'aggiunta di provider a un AutoLogger esistente. Per altre informazioni, vedere la sezione Osservazioni seguente.

Commenti

Per altre informazioni su AutoLoggers, vedere Configurazione e avvio di una sessione autoLogger.

Ogni nome di sezione creato da INF-writer deve essere univoco all'interno del file INF e deve seguire le regole generali per la definizione dei nomi di sezione. Per altre informazioni su queste regole, vedere Regole di sintassi generali per i file INF.

Una direttiva AddAutoLogger deve fare riferimento a un nome add-autologger-install-section altrove nel file INF. Ogni sezione ha il formato seguente:

[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) 
… 

Ogni componente aggiuntivo autologger-install-section deve specificare Start. Facoltativamente, specificare uno o più provider autoLogger per AutoLogger usando AddAutoLoggerProvider, ognuno in una riga separata. Per altre informazioni sui provider AutoLogger in un file INF, vedere Aggiunta di provider autoLogger di seguito.

Una direttiva UpdateAutoLogger deve fare riferimento a una sezione update-autologger-install-section denominata altrove nel file INF. Ogni sezione di questo tipo ha il formato seguente:

[update-autologger-install-section] 

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

Ogni sezione update-autologger-install-section può specificare uno o più provider AutoLogger usando AddAutoLoggerProvider, ognuno in una riga separata. Per altre informazioni sui provider AutoLogger in un file INF, vedere Aggiunta di provider autoLogger di seguito.

Voci e valori add-AutoLogger-Install-Section

Iniziare=0 | 1
Specifica se AutoLogger verrà avviato alla successiva riavvio del computer. Per avviare AutoLogger, impostare questo valore su 1; in caso contrario, impostare questo valore su 0.

Buffersize=dimensioni del buffer
Facoltativamente, specifica le dimensioni di ogni buffer, espresso in kilobyte. BufferSize deve essere minore di un megabyte. ETW usa la dimensione della memoria fisica per calcolare questo valore se non è impostato.

ClockType=clock-type
Facoltativamente, specifica il timer da utilizzare per registrare il timestamp per ogni evento usando i valori numerici seguenti, espressi in decimal o, come illustrato nell'elenco seguente, in notazione esadecimale. Se omesso, il valore predefinito è 0x1 (valore del contatore delle prestazioni).

0x1 (valore del contatore delle prestazioni)

0x2 (Timer di sistema)

0x3 (contatore del ciclo CPU)

Per una descrizione di ogni tipo di orologio, vedere il membro ClientContext di WNODE_HEADER.

DisableRealtimePersistence=0 | 1
Facoltativamente, consente di disabilitare la persistenza in tempo reale impostando il valore su 1. Il valore predefinito è 0 (abilitato). Se la persistenza in tempo reale è abilitata, gli eventi in tempo reale non recapitati dal momento in cui il computer è stato arrestato verrà mantenuto. Gli eventi verranno quindi recapitati al consumer alla successiva connessione del consumer alla sessione.

Filename=nome file
Facoltativamente, specifica il percorso completo del file di log. Se il percorso non esiste, la prima volta che viene avviato AutoLogger verrà creata una procedura consigliata. La lunghezza di FileName è limitata a 1024 caratteri. Il file è un file di log sequenziale. Il percorso del file predefinito è %DriverData%\<SessionName.etl>.

FileMax=file-max
Facoltativamente, specifica il numero massimo di istanze del file di log creato da ETW. Dopo aver creato il numero massimo di file, ETW sovrascrive il primo file, se esistente. Il numero massimo di istanze del file di log supportato è 16. Non usare questa funzionalità con il EVENT_TRACE_FILE_MODE_NEWLINE LogFileMode.

FlushTimer=flush-timer
Facoltativamente, specifica la frequenza, in secondi, dei buffer di traccia scaricati forzatamente. Il tempo di scaricamento minimo è di 1 secondo. Il valore predefinito è 0. Per impostazione predefinita, i buffer vengono scaricati solo quando sono pieni.

LogFileMode=log-file-mode
Facoltativamente, specifica una o più modalità di log. Per i valori possibili, vedere Costanti della modalità di registrazione. Il valore predefinito è 0x1 (EVENT_TRACE_FILE_MODE_SEQUENTIAL).

Maxfilesize=max-file-size
Facoltativamente, specifica le dimensioni massime del file di log, in megabyte. La sessione viene chiusa quando viene raggiunta la dimensione massima, a meno che non venga specificato EVENT_TRACE_FILE_MODE_CIRCULAR in LogFileMode. Per specificare nessun limite, impostare il valore su 0. Il valore predefinito è 100 mb. Il comportamento che si verifica quando viene raggiunta la dimensione massima del file dipende dal valore di LogFileMode.

MaximumBuffers=maximum-buffers
Facoltativamente, specifica il numero massimo di buffer da allocare, in genere il numero minimo di buffer più venti. Questo valore deve essere maggiore o uguale al valore di MinimumBuffers.

MinimumBuffers=buffer minimi
Facoltativamente, specifica il numero minimo di buffer da allocare all'avvio. Il numero minimo di buffer che è possibile specificare è due buffer per processore.

AddAutoLoggerProvider={ProviderGUID}, autologger-provider-install-section
Facoltativamente, specifica un provider con una sottoclasse che fa riferimento a un autologger-provider-install-section definito da INF altrove nel file INF. Per altre informazioni, vedere la sezione Aggiunta di provider autoLogger .

Aggiunta di provider autoLogger

Nelle sezioni add-autologger-install-section e update-autologger-install-section è possibile specificare i provider che si desidera abilitare nella sessione usando la direttiva AddAutoLoggerProvider .

ProviderGUID deve essere un valore GUID che identifica il provider AutoLogger. Può essere espresso come valore GUID esplicito del formato {nnnnnnnn-nnnn-nnnn-nnnn-nnnn} o come token %strkey% definito in {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn} in una sezione Strings del file INF.

Una sotto direttiva AddAutoLoggerProvider deve anche fare riferimento a una sezione autologger-provider-install-section altrove nel file. Ogni sezione di questo tipo ha il formato seguente:

[autologger-provider-install-section] 

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

Voci e valori autoLogger-Provider-Install-Section

Abilitato=0 | 1
Specifica facoltativamente se il provider è abilitato. Per abilitare il provider, impostare questo valore su 1. Per disabilitare, impostare il valore su 0. Il valore predefinito è 0.

EnableFlags=enable-flag
Facoltativamente specifica la classe di eventi per cui il provider genera eventi. Per informazioni dettagliate, vedere il parametro EnableFlags della funzione EnableTraceEx . Specificare questo nome di valore se il provider non supporta MatchAnyKeyword o MatchAllKeyword.

EnableLevel=enable-level
Facoltativamente, viene fornito il livello di dettaglio incluso nell'evento. Per un elenco di livelli predefiniti, vedere il parametro Level della funzione EnableTraceEx .

EnableProperty=enable-property
Facoltativamente, specifica l'inclusione di uno o più degli elementi seguenti nel file di log:

0x00000001 (EVENT_ENABLE_PROPERTY_SID ) = Includere nei dati estesi l'identificatore di sicurezza (SID) dell'utente.

0x00000002 (EVENT_ENABLE_PROPERTY_TS_ID ) = Includere nei dati estesi l'identificatore della sessione del terminale.

0x00000004 (EVENT_ENABLE_PROPERTY_STACK_TRACE ) = Includere nei dati estesi una traccia dello stack di chiamate per gli eventi scritti usando EventWrite.

0x00000010 (EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0 ) = Filtra tutti gli eventi che non hanno una parola chiave non zero specificata.

0x00000020 (EVENT_ENABLE_PROPERTY_PROVIDER_GROUP ) = Indica che questa chiamata a EnableTraceEx2 deve abilitare un gruppo di provider anziché un singolo provider di eventi.

0x00000080 (EVENT_ENABLE_PROPERTY_PROCESS_START_KEY ) = Includere la chiave iniziale del processo nei dati estesi.

0x00000100 (EVENT_ENABLE_PROPERTY_EVENT_KEY ) = Includere la chiave evento nei dati estesi.

0x00000200 (EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE ) = Filtra tutti gli eventi contrassegnati come evento InPrivate o provengono da un processo contrassegnato come InPrivate.

MatchAnyKeyword=match-any-keyword
Facoltativamente, viene fornita una maschera di parole chiave che determinano la categoria di eventi che si desidera che il provider scrivi. Il provider scrive l'evento se uno dei bit della parola chiave dell'evento corrisponde a uno dei bit impostati in questa maschera. Per specificare che il provider scrive tutti gli eventi, impostare questo valore su zero. Per un esempio, vedere la sezione Osservazioni della funzione EnableTraceEx .

MatchAllKeyword=parola chiave match-all-keyword
Facoltativamente, limita la categoria di eventi che si desidera che il provider scriva. Se la parola chiave dell'evento soddisfa la condizione MatchAnyKeyword , il provider scriverà l'evento solo se tutti i bit di questa maschera esistono nella parola chiave dell'evento. Questa maschera non viene usata se MatchAnyKeyword è zero. Per un esempio, vedere la sezione Osservazioni della funzione EnableTraceEx .

Esempio

[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 

Compatibilità legacy

Le direttive AddAutoLogger e UpdateAutoLogger sono supportate a partire da Windows 11. Per configurare un autoLogger in un sistema operativo downlevel, usare la direttiva 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 

Vedere anche

DDInstall. Eventi