Condividi tramite


Configurazione e avvio della sessione del logger globale

La sessione di traccia eventi del Logger globale registra gli eventi che si verificano all'inizio del processo di avvio del sistema operativo. Le applicazioni e i driver di dispositivo possono usare la sessione Globale logger per acquisire le tracce prima dell'accesso dell'utente. Si noti che alcuni driver di dispositivo, ad esempio i driver di dispositivo disco, non vengono caricati al momento dell'avvio della sessione globale del Logger.

Nota

Se si sta creando una sessione logger globale in Windows Vista, è consigliabile creare invece una sessione AutoLogger .

Usare il Registro di sistema per configurare la sessione globale del Logger. Aggiungere la chiave GlobalLogger alla chiave del Registro di sistema seguente, se non è già presente:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \WMI

Nella tabella seguente vengono descritti i valori che è possibile definire per la chiave GlobalLogger . Per specificare questi valori del Registro di sistema, è necessario disporre dei privilegi di amministratore. I valori del Registro di sistema influiscono su tutti i provider che registrano eventi nella sessione globale del Logger. Il valore Start è l'unico valore necessario per avviare la sessione del Logger globale; tutti gli altri valori hanno impostazioni predefinite utilizzate se il valore non è presente nel Registro di sistema. In genere, è consigliabile usare i valori predefiniti. Se si specifica un valore che ETW non può supportare, ETW eseguirà l'override del valore.

Valore Tipo Descrizione
Inizia REG_DWORD Impostare questo valore su 1 (attivato) per avviare la sessione globale del logger alla successiva avvio del sistema. Per arrestare l'avvio della sessione, impostare questo valore su 0 (disattivato).
BufferSize REG_DWORD Dimensioni di ogni buffer, espresso in kilobyte. Questo valore deve essere minore di un megabyte. ETW usa le dimensioni della memoria fisica per calcolare questo valore.
ClockType REG_DWORD Timer da utilizzare per la registrazione del timestamp per ogni evento.
  • 1 = Valore del contatore delle prestazioni (risoluzione elevata)
  • 2 = Timer di sistema
  • 3 = contatore del ciclo cpu
Per una descrizione di ogni tipo di orologio, vedere il membro ClientContext di WNODE_HEADER.
Il valore predefinito è 1 (valore del contatore delle prestazioni) in Windows Vista e versioni successive. Prima di Windows Vista, il valore predefinito è 2 (timer di sistema).
EnableKernelFlags REG_BINARY Usare questo valore per abilitare uno o più provider del kernel. Se si abilitano i provider del kernel, la sessione del Logger globale rinomina se stessa in NT Kernel Logger all'avvio. Per i valori possibili, vedere il membro EnableFlags di EVENT_TRACE_PROPERTIES.
FileCounter REG_DWORD Numero di file di log di traccia eventi generati dalle sessioni globali del Logger. Il sistema incrementa questo valore fino a raggiungere il valore di FileMax. Reimposta quindi il valore su 0. Questo contatore impedisce al sistema di sovrascrivere un file di log di traccia del Logger globale.
FileMax REG_DWORD Numero massimo di file di log di traccia eventi consentiti nel sistema. Quando il numero di log di traccia raggiunge il valore massimo specificato, il sistema inizia a sovrascrivere i log, a partire dal meno recente.
Se il file di log specificato in FileName esiste, ETW aggiunge il valore FileCounter al nome file. Ad esempio, se viene utilizzato il nome del file di log predefinito, il modulo è %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl.NNNN.
Il valore predefinito è 0, ovvero non è previsto alcun valore massimo.
FileName REG_SZ Percorso completo del file di log. Il percorso di questo file deve esistere. Il file di log è un file di log sequenziale. Si noti che tutti i provider che scrivono eventi nella sessione globale del Logger scrivono eventi in questo file di log. Il percorso è limitato a 1024 caratteri. Se FileName non viene specificato, gli eventi vengono scritti in %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl. Prima di Windows Vista: Il file predefinito è %SystemRoot%\System32\LogFiles\WMI\Trace.log.

FlushTimer REG_DWORD Con quale frequenza, in secondi, i buffer di traccia vengono scaricati forzatamente. Il tempo di scaricamento minimo è di 1 secondo. Questo scaricamento forzato si aggiunge allo scaricamento automatico che si verifica quando un buffer è pieno e quando la sessione di traccia si arresta.
Per il caso di un logger in tempo reale, un valore pari a zero (valore predefinito) indica che il tempo di scaricamento verrà impostato su 1 secondo. Un logger in tempo reale è quando LogFileMode è impostato su EVENT_TRACE_REAL_TIME_MODE.
Il valore predefinito è 0. Per impostazione predefinita, i buffer vengono scaricati solo quando sono pieni.
LogFileMode REG_DWORD Specifica le opzioni di sessione del log. Per i valori, vedere Costanti della modalità di registrazione. Questi valori sono supportati in Windows Vista e versioni successive.
MaximumBuffers REG_DWORD Numero massimo di buffer da allocare. In genere, questo valore è il numero minimo di buffer più venti. ETW usa le dimensioni del buffer e le dimensioni della memoria fisica per calcolare questo valore. Questo valore deve essere maggiore o uguale al valore per MinimumBuffers.
Maxfilesize REG_DWORD Dimensione massima, in megabyte, del file di log di traccia eventi. Per impostazione predefinita, non sono previste dimensioni massime del file.
MinimumBuffers REG_DWORD Numero minimo di buffer da allocare all'avvio della sessione logger globale. Il numero minimo di buffer che è possibile specificare è due buffer per processore. Ad esempio, in un singolo computer processore, il numero minimo di buffer è due.
Il valore predefinito in un sistema a processore singolo è 0x3.
Status REG_DWORD Stato di avvio del Logger globale. Se l'avvio del Logger globale non è riuscito, il valore di questa chiave è il codice di errore Win32 appropriato. Se il Logger globale è stato avviato correttamente, il valore di questa chiave è ERROR_SUCCESS (0).

Dopo che il Registro di sistema è stato modificato e il computer è stato riavviato, la sessione globale del logger viene avviata automaticamente e viene usata come qualsiasi altra sessione con un'eccezione: per fare riferimento alla sessione globale del Logger, si usa l'handle costante WMI_GLOBAL_LOGGER_ID definito in Wmistr.h. Questa costante può essere utilizzata come argomento per qualsiasi funzione di traccia eventi che accetta un handle di sessione. Nelle funzioni che accettano un nome di sessione, usare GLOBAL_LOGGER_NAME.

Il controller Globale Logger non chiama la funzione EnableTrace per abilitare i provider. Il provider è responsabile della determinazione dell'avvio della sessione Globale Logger e quindi dell'abilitazione stessa.

Per determinare se viene avviata la sessione Global Logger, è possibile chiamare la funzione ControlTrace , impostando SessionHandle su WMI_GLOBAL_LOGGER_ID e ControlCode su EVENT_TRACE_CONTROL_QUERY. Se la chiamata ControlTrace ha esito positivo, la sessione Globale Logger esiste e il provider può abilitare e registrare gli eventi alla sessione Globale Logger (la funzione ControlTrace restituisce ERROR_WMI_INSTANCE_NOT_FOUND se il Logger globale non è attivo).

In genere, il controller è responsabile del passaggio dei flag di abilitazione e del livello al provider quando abilita il provider, ma perché il controller Logger globale non abilita il provider, è responsabilità del provider passare queste informazioni a se stesso, se necessario.

La sessione Global Logger è una risorsa limitata e deve essere usata in modo limitato. I servizi che vogliono acquisire informazioni durante il processo di avvio devono considerare l'aggiunta della logica del controller a se stessa anziché l'uso della sessione Global Logger.

Per informazioni dettagliate sull'avvio di una sessione di traccia eventi, vedere Configurazione e avvio di una sessione di traccia eventi.

Per informazioni dettagliate sull'avvio di una sessione di logger privato, vedere Configurazione e avvio di una sessione di logger privato.

Per informazioni dettagliate sull'avvio di una sessione nt kernel Logger, vedere Configurazione e avvio della sessione del logger del kernel NT.