Anmelden bei der globalen Protokollierungssitzung
Verwenden Sie das folgende Verfahren, um einen Treiber für die Anmeldung bei der Global Logger-Ablaufverfolgungssitzung zu konfigurieren:
Fügen Sie dem Treibercode die folgende Definition hinzu. Fügen Sie die Definition zwischen der WPP_CONTROL_GUIDS Makrodefinition und der include-Anweisung für die Headerdatei der Ablaufverfolgungsnachricht ein.
#define WPP_GLOBALLOGGER
Verwenden Sie Tracelog , um eine globale Protokollierungsablaufverfolgungssitzung zu konfigurieren. Der einfachste Befehl lautet wie folgt:
tracelog -start GlobalLogger
Vollständige Anweisungen, einschließlich Parametern zum Konfigurieren der Global Logger-Ablaufverfolgungssitzung, finden Sie unter Ablaufverfolgungssyntax und Globale Protokollierer-Ablaufverfolgungssitzung.
Ein Beispiel finden Sie unter Beispiel 13: Erstellen einer globalen Protokollierungssitzung.
Mit diesem Befehl wird die Ablaufverfolgungssitzung erstellt und konfiguriert, aber die Sitzung wird erst gestartet, wenn Sie das System neu starten (Schritt 5).
Fügen Sie unter dem Unterschlüssel HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger einen Unterschlüssel mit dem Namen für die Steuerelement-GUID des Ablaufverfolgungsanbieters hinzu. In Windows Vista und höheren Versionen von Windows muss die Steuerelement-GUID in Klammern ( {} ) eingeschlossen sein.
Der Befehl tracelog -start GlobalLogger fügt der Registrierung den Unterschlüssel GlobalLogger hinzu. Mit dem Unterschlüssel ControlGUID wird der Treiber als Ablaufverfolgungsanbieter für die Ablaufverfolgungssitzung der globalen Protokollierung eingerichtet.
Wenn Sie beispielsweise den Tracedrv-Beispieltreiber für die Protokollierung bei der Global Logger-Ablaufverfolgungssitzung auf einem Computer unter Windows XP konfigurieren möchten, fügen Sie einen Unterschlüssel mit dem Namen für die Tracedrv-Steuerelement-GUID hinzu. d58c126f-b309-11d1-969e-0000f875a5bc: HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger\d58c126f-b309-11d1-969e-0000f875a5bc.
TraceDrv, ein Beispieltreiber, der für die Softwareablaufverfolgung entwickelt wurde, ist im Repository für Windows-Treiberbeispiele auf GitHub verfügbar.
Um den Ablaufverfolgungsanbieter zu konfigurieren, fügen Sie dem Unterschlüssel ControlGUID die folgenden Registrierungseinträge hinzu. Diese Einträge sind optional, und ihre Werte werden vom Treiber definiert.
Eintragsname Datentyp Beschreibung Flags
REG_DWORD
Gibt die Ablaufverfolgungsflags für den Anbieter an.
Die Bedeutung der Flags wird von jedem Ablaufverfolgungsanbieter unabhängig definiert. In der Regel stellen Flags immer detailliertere Berichtsebenen dar.
Level
REG_DWORD
Gibt die Ablaufverfolgungsebene für den Anbieter an.
Die Bedeutung des Level-Werts wird von jedem Ablaufverfolgungsanbieter unabhängig definiert. In der Regel stellt die Ablaufverfolgungsebene den Schweregrad des Ereignisses (Informationen, Warnungen oder Fehler) dar.
Beachten Sie, dass der Name des Flags-Eintrags plural und der Name des Eintrags Level singular ist.
- Starten Sie das System neu. Dadurch wird die Ablaufverfolgungssitzung der globalen Protokollierung gestartet.
Löschen Sie nach Abschluss des Tests den Unterschlüssel ControlGUID , oder legen Sie den Wert des Starteintrags im Unterschlüssel GlobalLogger auf 0 fest. Andernfalls wird die globale Protokollierungssitzung ausgeführt, und der Treiber meldet sich bei jedem Neustart des Systems an.
Kommentare
Wenn WPP_GLOBALLOGGER vorhanden ist, fügt WPP Code hinzu, der die Registrierung liest und bestimmt, ob die globale Protokollierungssitzung ausgeführt wird und ob der Treiber für die Ablaufverfolgung in der globalen Protokollierungssitzung aktiviert ist. Dieser Code tritt an die Stelle der Aktivierungsbenachrichtigung, die der Treiber von einer Standardablaufverfolgungssitzung erhalten würde.
Da die globale Protokollierungssitzung keine Rückrufbenachrichtigung bereitstellt, geht Windows davon aus, dass ein Rückruf erfolgt ist, und fährt entsprechend fort.
Die WPP-Definitionen generieren nur eine kleine Menge Code, sodass sie nach dem Testen nicht aus dem Code entfernt werden müssen.