Condividi tramite


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.