Sessione di traccia del logger globale
Una sessione di traccia del Logger globale registra gli eventi che si verificano durante il processo di avvio prima che il sistema sia completamente operativo, ad esempio gli eventi generati dai driver di dispositivo. Si tratta di una sessione di traccia riservata incorporata in Windows.
Le sessioni di traccia del Logger globale scrivono sempre messaggi in un log di traccia. Logger globale non supporta sessioni di traccia in tempo reale o sessioni di traccia memorizzate nel buffer.
Poiché global Logger deve essere disponibile all'inizio del processo di avvio del sistema operativo, viene avviato e configurato usando le voci del Registro di sistema (nella sottochiave HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger ), anziché le chiamate di funzione. Dopo l'avvio, il Logger globale si comporta come una normale sessione di traccia eventi.
La sessione di traccia del Logger globale usa un nome di sessione riservato, "GlobalLogger". Il GUID del controllo è rappresentato dalla costante GlobalLoggerGuid. Creare una sessione di traccia del Logger globale e quindi riavviare il computer per avviare la sessione di traccia. Solo una sessione di traccia del Logger globale può essere eseguita nel computer alla volta.
Per creare una sessione di traccia del Logger globale, usare Tracelog. Crea automaticamente la sottochiave e le voci del Registro di sistema che archiviano le opzioni della sessione di traccia. La sessione di traccia del Logger globale viene avviata al riavvio del computer. Per altre informazioni, vedere Sintassi dei comandi tracelog.
Per formattare i messaggi di traccia da una sessione di traccia del Logger globale, usare Tracefmt con system.tmf, un file di formato di messaggio di traccia incluso in WDK.
Poiché la sessione del Logger globale viene attivata dalle voci del Registro di sistema, viene eseguita ogni volta che le voci vengono visualizzate nel Registro di sistema. Per impedire l'avvio della sessione del Logger globale ogni volta che il sistema viene avviato, impostare il valore della voce Start su 0 o eliminare tutte le voci del Registro di sistema.
È possibile convertire una sessione di traccia del Logger globale in una sessione di traccia del logger kernel NT, tracciando così il kernel durante il processo di avvio. Per informazioni, vedere Sessione del logger globale di avvio
I provider di traccia, ad esempio driver in modalità kernel e applicazioni in modalità utente, possono accedere alla sessione di traccia del Logger globale. In questo modo è possibile tracciare un driver o un altro provider di traccia durante l'avvio del sistema. Per informazioni, vedere Registrazione alla sessione del logger globale
Limitazioni della sessione di traccia del logger globale
La sessione di traccia del Logger globale è molto utile, ma è importante tenere presente le relative limitazioni:
È possibile eseguire una sola sessione logger globale alla volta.
La sessione globale del logger non invia notifiche di abilitazione ai provider.
Le voci del Registro di sistema del Logger globale rimangono nel Registro di sistema e sono valide fino a quando non vengono reimpostate o eliminate manualmente oppure il comando tracelog -remove . Fino a quando non vengono reimpostate, la sessione del Logger globale viene avviata ogni volta che si avvia il sistema.
Il logger ACPI di Windows è abilitato in modo permanente per la sessione di traccia del logger globale. I messaggi di traccia di questo logger vengono visualizzati nel log di traccia.
Se viene avviata una sessione di traccia standard mentre un driver esegue la registrazione alla sessione globale del logger, il driver passa e avvia la registrazione alla sessione di traccia standard.
Voci del Registro di sistema del logger globale
La tabella seguente mostra le voci del Registro di sistema che configurano la sessione globale del Logger. Queste voci si trovano nella sottochiave HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger . È necessaria solo la voce Start .
Oltre alle voci del Registro di sistema in questa tabella, è anche possibile aggiungere una sottochiave ControlGUID sotto la sottochiave GlobalLogger per rappresentare un provider di traccia, ad esempio un driver, che accede alla sessione di traccia globale del Logger. Per informazioni, vedere Registrazione alla sessione globale del logger.
Voce | Tipo di dati | Descrizione |
---|---|---|
Inizia |
REG_DWORD |
Quando è impostato su 1 (attivato), la sessione globale del logger viene avviata alla successiva avvio del sistema. 0 = off, 1=on |
BufferSize |
REG_DWORD |
Specifica le dimensioni di ogni buffer (in KB). Il valore predefinito è 0x40 (64 KB). |
ClockType |
REG_DWORD |
Specifica il timer utilizzato per i timestamp dei messaggi di traccia. A partire da Windows Vista, il valore predefinito è 1. Nei sistemi operativi precedenti a Windows Vista, il valore predefinito è 2. 1 = Valore del contatore delle prestazioni (risoluzione elevata) 2 = Timer di sistema 3 = Clock del ciclo della CPU |
EnableKernelFlags |
REG_BINARY |
Converte la sessione del Logger globale in una sessione di traccia del logger del kernel NT e specifica gli eventi inclusi nella traccia del kernel. Per informazioni, vedere Sessione del logger globale di avvio. |
FileCounter |
REG_DWORD |
Archivia il 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 |
Specifica il 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. Il valore predefinito è 0, ovvero non è previsto alcun valore massimo. |
FileName |
REG_SZ |
Percorso (facoltativo) e nome file del file di log di traccia eventi. Il valore predefinito è %SystemRoot%\System32\LogFiles\WMI\trace.log. |
FlushTimer |
REG_DWORD |
Specifica la frequenza (in secondi) con cui i buffer di traccia vengono scaricati forzatamente. Questo scaricamento forzato si aggiunge allo scaricamento automatico che si verifica ogni volta che un buffer è pieno e quando la sessione di traccia si arresta. Il valore predefinito è 0. Per impostazione predefinita, i buffer vengono scaricati solo quando sono pieni. Il tempo di scaricamento minimo è di 1 secondo. |
LogFileMode |
REG_DWORD |
Specifica le opzioni di sessione del log. Supportato solo in Windows Vista e versioni successive di Windows. |
MaximumBuffers |
REG_DWORD |
Specifica il numero massimo di buffer che è possibile allocare per la sessione. Il valore predefinito è 0x19 (25). |
Maximumfilesize |
REG_DWORD |
Specifica le dimensioni massime del file di log di traccia eventi. Per impostazione predefinita, non sono previste dimensioni massime del file. |
MinimumBuffers |
REG_DWORD |
Specifica il numero di buffer allocati all'avvio della sessione. Il valore predefinito è 0x3. |
Status |
REG_DWORD |
Archivia il codice restituito dal tentativo di avviare una sessione di traccia di Global Logger. Se la sessione non è stata avviata, il valore di questa voce è un codice di errore Win32. Se la sessione è stata avviata, il valore di questa voce è ERROR_SUCCESS. |
Queste voci del Registro di sistema create rimangono nel Registro di sistema ed sono valide fino a quando non vengono eliminate o modificate i valori. Pertanto, dopo l'esecuzione della sessione Globale Logger, usare il comando tracelog -remove GlobalLogger per impostare il valore della voce Start su 0 ed eliminare le altre voci del Registro di sistema Global Logger. In caso contrario, la sessione Globale Logger viene eseguita ogni volta che si riavvia il computer e il file di log risultante può aumentare molto grande.
Costanti della modalità di registrazione
Nella tabella seguente vengono visualizzati i valori validi per la voce del Registro di sistema LogFileMode nella sottochiave HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger . Questa voce viene usata per impostare le opzioni per una sessione di traccia globale di Logger, incluse quelle per sessioni di traccia in tempo reale, sessioni di traccia privata, registrazione circolare e buffering (nessun log). Questa voce del Registro di sistema è supportata solo in Windows Vista e versioni successive di Windows.
Questa voce del Registro di sistema corrisponde al membro LogFileMode della struttura EVENT_TRACE_PROPERTIES. I relativi valori corrispondono alle costanti della modalità di registrazione. La struttura EVENT_TRACE_PROPERTIES e le costanti della modalità di registrazione sono descritte nella documentazione Microsoft Windows SDK.
Questa tabella viene visualizzata qui per visualizzare i valori esadecimali delle costanti. Usare questi valori o una somma di questi valori per rappresentare la costante nella voce del Registro di sistema LogFileMode .
Valore | Costante | Descrizione |
---|---|---|
0x0 |
EVENT_TRACE_FILE_MODE_NONE |
Non vengono creati file di log di traccia eventi. |
0x1 |
EVENT_TRACE_FILE_MODE_SEQUENTIAL |
I file di log di traccia eventi sono sequenziali. |
0x2 |
EVENT_TRACE_FILE_MODE_CIRCULAR |
I file di log di traccia eventi sono circolari. |
0x4 |
EVENT_TRACE_FILE_MODE_APPEND |
Aggiungere messaggi di traccia a un file di log esistente. Questa modalità è valida solo con i file sequenziali. |
0x8 |
EVENT_TRACE_FILE_MODE_NEWFILE |
Creare un nuovo file di log di traccia eventi ogni volta che il file esistente raggiunge il valore della voce MaximumFileSize (vedere la tabella precedente). |
0x20 |
EVENT_TRACE_FILE_MODE_PREALLOCATE |
Riserva spazio per il file di log di traccia eventi. Valido solo con EVENT_TRACE_FILE_MODE_SEQUENTIAL o EVENT_TRACE_FILE_MODE_CIRCULAR e non valido con EVENT_TRACE_FILE_MODE_NEWFILE. |
0x40 |
EVENT_TRACE_NONSTOPPABLE_MODE |
Una chiamata a StopTrace non arresta la sessione di traccia. Questa funzionalità impedisce agli utenti di arrestare le sessioni di traccia necessarie per la diagnosi e l'ottimizzazione del sistema. |
0x100 |
EVENT_TRACE_REAL_TIME_MODE |
Specifica una sessione di traccia in tempo reale. |
0x200 |
EVENT_TRACE_DELAY_OPEN_FILE_MODE |
Solo per uso interno. |
0x400 |
EVENT_TRACE_BUFFERING_MODE |
Gli eventi vengono conservati nei buffer. Non vengono mai scritti in un file di log o recapitati a un consumer di traccia. |
0x800 |
EVENT_TRACE_PRIVATE_LOGGER_MODE |
Specifica una sessione di traccia privata. Questo flag non è valido per una sessione di traccia di Logger globale. |
0x1000 |
EVENT_TRACE_ADD_HEADER_MODE |
Solo per uso interno. |
0x2000 |
EVENT_TRACE_USE_KBYTES_FOR_SIZE |
Interpretare il valore di MaximumFileSize in KB anziché MB. |
0x4000 |
EVENT_TRACE_USE_GLOBAL_SEQUENCE |
Genera numeri di sequenza globali per i messaggi di traccia. Questi numeri sono univoci per tutte le sessioni di traccia nel computer. Per impostazione predefinita, i messaggi di traccia non hanno numeri di sequenza. |
0x8000 |
EVENT_TRACE_USE_LOCAL_SEQUENCE |
Genera numeri di sequenza locali per i messaggi di traccia. Questi numeri sono univoci all'interno della sessione di traccia. Per impostazione predefinita, i messaggi di traccia non hanno numeri di sequenza. |
0x10000 |
EVENT_TRACE_RELOG_MODE |
Solo per uso interno. |
0x80000 |
EVENT_TRACE_KD_FILTER_MODE |
Reindirizza i messaggi di traccia al debugger del kernel e imposta le dimensioni del buffer di traccia su 3 KB, le dimensioni massime del buffer per il debugger. |
0x1000000 |
EVENT_TRACE_MODE_RESERVED |
Non valido per una sessione di traccia di Logger globale. |
0x01000000 |
EVENT_TRACE_USE_PAGED_MEMORY |
Allocare i buffer di sessione di traccia dalla memoria paginabile. Per impostazione predefinita, i buffer vengono allocati dalla memoria non modificabile. |