Condividi tramite


Come accedere alla sessione globale del logger

Usare la procedura seguente per configurare un driver per accedere alla sessione di traccia del logger globale:

  1. Aggiungere la definizione seguente al codice del driver. Inserire la definizione tra la definizione di macro WPP_CONTROL_GUIDS e l'istruzione include per il file di intestazione del messaggio di traccia.

    #define WPP_GLOBALLOGGER
    
  2. Usare Tracelog per configurare una sessione di traccia del Logger globale. Il comando più semplice è il seguente:

    tracelog -start GlobalLogger
    

    Per istruzioni complete, inclusi i parametri per la configurazione della sessione di traccia del logger globale, vedere sintassi dei comandi tracelog e sessione di traccia del logger globale.

    Per un esempio, vedere Esempio 13: Creazione di una sessione logger globale.

    Questo comando crea e configura la sessione di traccia, ma la sessione non viene avviata fino al riavvio del sistema (passaggio 5).

  3. Nella sottochiave HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger aggiungere una sottochiave denominata per il GUID del controllo del provider di traccia. In Windows Vista e versioni successive di Windows, il GUID del controllo deve essere racchiuso tra parentesi graffe ( {} ).

    Il comando tracelog -start GlobalLogger aggiunge la sottochiave GlobalLogger al Registro di sistema. La sottochiave ControlGUID stabilisce il driver come provider di traccia per la sessione di traccia del Logger globale.

    Ad esempio, per configurare il driver di esempio Tracedrv per accedere alla sessione di traccia del Logger globale in un computer che esegue Windows XP, aggiungere una sottochiave denominata per il GUID del controllo Tracedrv, d58c126f-b309-11d1-969e-0000f875a5bc: HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger\d58c126f-b309-11d1-969e-0000f875a5bc.

    TraceDrv, un driver di esempio progettato per la traccia software, è disponibile nel repository degli esempi di driver di Windows in GitHub.

  4. Per configurare il provider di traccia, aggiungere le voci del Registro di sistema seguenti alla sottochiave ControlGUID . Queste voci sono facoltative e i relativi valori sono definiti dal driver.

    Nome voce Tipo di dati Descrizione

    Flag

    REG_DWORD

    Specifica i flag di traccia per il provider.

    Il significato dei flag viene definito in modo indipendente da ogni provider di traccia. In genere, i flag rappresentano livelli di report sempre più dettagliati.

    Level

    REG_DWORD

    Specifica il livello di traccia per il provider.

    Il significato del valore Level viene definito in modo indipendente da ogni provider di traccia. In genere, il livello di traccia rappresenta la gravità dell'evento (informazioni, avviso o errore).

Si noti che il nome della voce Flags è plurale e il nome della voce Level è singolare.

  1. Riavviare il sistema. Verrà avviata la sessione di traccia del Logger globale.

Al termine del test, eliminare la sottochiave ControlGUID o impostare il valore della voce Start nella sottochiave GlobalLogger su 0. In caso contrario, viene eseguita la sessione del Logger globale e il driver vi registra ogni volta che si riavvia il sistema.

Commenti

Quando WPP_GLOBALLOGGER è presente, WPP aggiunge codice che legge il Registro di sistema e determina se la sessione globale del logger è in esecuzione e se il driver è abilitato per la traccia nella sessione globale del logger. Questo codice ha il posto della notifica di abilitazione che il driver riceverà da una sessione di traccia standard.

Inoltre, poiché la sessione logger globale non fornisce una notifica di callback, Windows presuppone che si sia verificato un callback e procede di conseguenza.

Le definizioni WPP generano solo una piccola quantità di codice, quindi non è necessario rimuoverle dal codice dopo il test.