Konfigurieren und Starten der globalen Protokollierungssitzung

Die Global Logger-Ereignisablaufverfolgungssitzung zeichnet Ereignisse auf, die zu einem frühen Zeitpunkt im Startvorgang des Betriebssystems auftreten. Anwendungen und Gerätetreiber können die globale Protokollierungssitzung verwenden, um Ablaufverfolgungen zu erfassen, bevor sich der Benutzer anmeldet. Beachten Sie, dass einige Gerätetreiber, z. B. Datenträgergerätetreiber, zu dem Zeitpunkt, zu dem die globale Protokollierungssitzung beginnt, nicht geladen werden.

Hinweis

Wenn Sie eine globale Protokollierungssitzung unter Windows Vista erstellen, sollten Sie stattdessen eine AutoLogger-Sitzung erstellen.

Sie verwenden die Registrierung, um die globale Protokollierungssitzung zu konfigurieren. Fügen Sie den GlobalLogger-Schlüssel dem folgenden Registrierungsschlüssel hinzu, falls er noch nicht vorhanden ist:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \WMI

In der folgenden Tabelle werden die Werte beschrieben, die Sie für den GlobalLogger-Schlüssel definieren können. Sie müssen über Administratorrechte verfügen, um diese Registrierungswerte angeben zu können. Die Registrierungswerte wirken sich auf alle Anbieter aus, die Ereignisse in der globalen Protokollierungssitzung protokollieren. Der Startwert ist der einzige Wert, der zum Starten der globalen Protokollierungssitzung erforderlich ist. alle anderen Werte verfügen über Standardeinstellungen, die verwendet werden, wenn der Wert nicht in der Registrierung vorhanden ist. In der Regel sollten Sie die Standardwerte verwenden. Wenn Sie einen Wert angeben, den ETW nicht unterstützen kann, überschreibt ETW den Wert.

Wert type Beschreibung
Starten REG_DWORD Legen Sie diesen Wert auf 1 (ein) fest, um die Globale Protokollierungssitzung beim nächsten Systemstart zu starten. Um den Start der Sitzung zu beenden, legen Sie diesen Wert auf 0 (aus) fest.
BufferSize REG_DWORD Die Größe jedes Puffers in Kilobyte. Dieser Wert sollte kleiner als ein Megabyte sein. ETW verwendet die Größe des physischen Arbeitsspeichers, um diesen Wert zu berechnen.
ClockType REG_DWORD Der Timer, der beim Protokollieren des Zeitstempels für jedes Ereignis verwendet werden soll.
  • 1 = Leistungsindikatorwert (hohe Auflösung)
  • 2 = Systemtimer
  • 3 = CPU-Zykluszähler
Eine Beschreibung der einzelnen Uhrentypen finden Sie im ClientContext-Element von WNODE_HEADER.
Der Standardwert ist 1 (Leistungsindikatorwert) unter Windows Vista und höher. Vor Windows Vista ist der Standardwert 2 (Systemtimer).
EnableKernelFlags REG_BINARY Verwenden Sie diesen Wert, um einen oder mehrere Kernelanbieter zu aktivieren. Wenn Sie Kernelanbieter aktivieren, benennt sich die Globale Protokollierungssitzung beim Start in NT Kernel Logger um. Mögliche Werte finden Sie im EnableFlags-Element von EVENT_TRACE_PROPERTIES.
FileCounter REG_DWORD Die Anzahl von Ereignisablaufverfolgungsprotokolldateien, die von globalen Protokollierungssitzungen generiert werden. Das System erhöht diesen Wert, bis er den Wert von FileMax erreicht. Anschließend wird der Wert auf 0 zurückgesetzt. Dieser Leistungsindikator verhindert, dass das System eine Ablaufverfolgungsprotokolldatei für die globale Protokollierung überschreibt.
FileMax REG_DWORD Die maximale Anzahl von Ereignisablaufverfolgungsprotokolldateien, die auf dem System zulässig sind. Wenn die Anzahl der Ablaufverfolgungsprotokolle den angegebenen Höchstwert erreicht, beginnt das System, die Protokolle zu überschreiben, beginnend mit dem ältesten.
Wenn die in FileName angegebene Protokolldatei vorhanden ist, fügt ETW den FileCounter-Wert an den Dateinamen an. Wenn beispielsweise der Standardname der Protokolldatei verwendet wird, lautet das Formular %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl.NNNN.
Der Standardwert ist 0, d. h. es gibt kein Maximum.
FileName REG_SZ Vollqualifizierter Pfad der Protokolldatei. Der Pfad zu dieser Datei muss vorhanden sein. Die Protokolldatei ist eine sequenzielle Protokolldatei. Beachten Sie, dass alle Anbieter, die Ereignisse in die Globale Protokollierungssitzung schreiben, Ereignisse in diese Protokolldatei schreiben. Der Pfad ist auf 1024 Zeichen beschränkt. Wenn FileName nicht angegeben ist, werden Ereignisse in %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl geschrieben. Vor Windows Vista: Die Standarddatei ist %SystemRoot%\System32\LogFiles\WMI\Trace.log.

FlushTimer REG_DWORD Wie oft die Ablaufverfolgungspuffer in Sekunden zwangsleert werden. Die minimale Leerungszeit beträgt 1 Sekunde. Diese erzwungene Leerung erfolgt zusätzlich zur automatischen Leerung, die auftritt, wenn ein Puffer voll ist und die Ablaufverfolgungssitzung beendet wird.
Im Fall einer Echtzeitprotokollierung bedeutet der Wert 0 (Standardwert), dass die Leerungszeit auf 1 Sekunde festgelegt wird. Eine Echtzeitprotokollierung ist der Zeitpunkt, an dem LogFileMode auf EVENT_TRACE_REAL_TIME_MODE festgelegt ist.
Der Standardwert ist 0. Standardmäßig werden Puffer nur geleert, wenn sie voll sind.
LogFileMode REG_DWORD Gibt Protokollsitzungsoptionen an. Werte finden Sie unter Protokollierungsmoduskonstanten. Diese Werte werden unter Windows Vista und höher unterstützt.
MaximumBuffers REG_DWORD Die maximale Anzahl der zuzuordnenden Puffer. In der Regel ist dieser Wert die minimale Anzahl von Puffern plus zwanzig. ETW verwendet die Puffergröße und die Größe des physischen Arbeitsspeichers, um diesen Wert zu berechnen. Dieser Wert muss größer oder gleich dem Wert für MinimumBuffers sein.
Maxfilesize REG_DWORD Die maximale Größe der Ereignisablaufverfolgungsprotokolldatei in Megabyte. Standardmäßig gibt es keine maximale Dateigröße.
MinimumBuffers REG_DWORD Die Mindestanzahl von Puffern, die beim Start der globalen Protokollierungssitzung zugeordnet werden sollen. Die Mindestanzahl von Puffern, die Sie angeben können, beträgt zwei Puffer pro Prozessor. Auf einem einzelnen Prozessorcomputer beträgt die Mindestanzahl von Puffern beispielsweise zwei.
Der Standardwert für ein Einzelprozessorsystem ist 0x3.
Status REG_DWORD Die Start-status der globalen Protokollierung. Wenn die globale Protokollierung nicht gestartet werden konnte, ist der Wert dieses Schlüssels der entsprechende Win32-Fehlercode. Wenn die globale Protokollierung erfolgreich gestartet wurde, lautet der Wert dieses Schlüssels ERROR_SUCCESS (0).

Nachdem die Registrierung geändert und der Computer neu gestartet wurde, wird die Globale Protokollierungssitzung automatisch gestartet und wie jede andere Sitzung mit einer Ausnahme verwendet: Sie verwenden das WMI_GLOBAL_LOGGER_ID Konstantenhandle (definiert in Wmistr.h), um auf die Globale Protokollierungssitzung zu verweisen. Diese Konstante kann als Argument für jede Ereignisablaufverfolgungsfunktion verwendet werden, die ein Sitzungshandle akzeptiert. Verwenden Sie in Funktionen, die einen Sitzungsnamen akzeptieren, GLOBAL_LOGGER_NAME.

Der globale Protokollierungscontroller ruft die EnableTrace-Funktion nicht auf, um Anbieter zu aktivieren. Der Anbieter ist dafür verantwortlich, zu bestimmen, ob die globale Protokollierungssitzung gestartet wird, und dann selbst zu aktivieren.

Um festzustellen, ob die globale Protokollierungssitzung gestartet wird, können Sie die ControlTrace-Funktion aufrufen und SessionHandle auf WMI_GLOBAL_LOGGER_ID und ControlCode auf EVENT_TRACE_CONTROL_QUERY festlegen. Wenn der ControlTrace-Aufruf erfolgreich ist, ist die globale Protokollierungssitzung vorhanden, und der Anbieter kann sich selbst aktivieren und Ereignisse in der Global Logger-Sitzung protokollieren (die ControlTrace-Funktion gibt ERROR_WMI_INSTANCE_NOT_FOUND zurück, wenn die globale Protokollierung nicht aktiv ist).

In der Regel ist der Controller dafür verantwortlich, die Aktivierungsflags und die Ebene an den Anbieter zu übergeben, wenn er den Anbieter aktiviert. Da der globale Protokollierungscontroller den Anbieter jedoch nicht aktiviert, liegt es in der Verantwortung des Anbieters, diese Informationen bei Bedarf an sich selbst zu übergeben.

Die globale Protokollierungssitzung ist eine begrenzte Ressource und sollte sparsam verwendet werden. Dienste, die Während des Startvorgangs Informationen erfassen möchten, sollten sich selbst Controllerlogik hinzufügen, anstatt die globale Protokollierungssitzung zu verwenden.

Ausführliche Informationen zum Starten einer Ereignisablaufverfolgungssitzung finden Sie unter Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung.

Ausführliche Informationen zum Starten einer privaten Protokollierungssitzung finden Sie unter Konfigurieren und Starten einer privaten Protokolliersitzung.

Ausführliche Informationen zum Starten einer NT-Kernelprotokollierungssitzung finden Sie unter Konfigurieren und Starten der NT-Kernelprotokollierungssitzung.