Freigeben über


Globale Protokollierungsablaufverfolgungssitzung

Eine globale Protokollierungs-Ablaufverfolgungssitzung zeichnet Ereignisse auf, die während des Startvorgangs auftreten, bevor das System vollständig betriebsbereit ist, z. B. ereignisse, die von Gerätetreibern generiert werden. Es handelt sich um eine reservierte Ablaufverfolgungssitzung, die in Windows integriert ist.

Globale Protokollierungsablaufverfolgungssitzungen schreiben immer Nachrichten in ein Ablaufverfolgungsprotokoll. Die globale Protokollierung unterstützt keine Echtzeit-Ablaufverfolgungssitzungen oder gepufferte Ablaufverfolgungssitzungen.

Da die globale Protokollierung frühzeitig im Startvorgang des Betriebssystems verfügbar sein muss, wird sie mithilfe von Registrierungseinträgen (im Unterschlüssel HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger ) anstelle von Funktionsaufrufen gestartet und konfiguriert. Nach dem Start verhält sich die globale Protokollierung wie eine reguläre Ereignisablaufverfolgungssitzung.

Die Globale Protokollierungsablaufverfolgungssitzung verwendet den reservierten Sitzungsnamen "GlobalLogger". Die Steuerelement-GUID wird durch die Konstante GlobalLoggerGuid dargestellt. Sie erstellen eine Globale Protokollierungsablaufverfolgungssitzung, und starten Sie dann den Computer neu, um die Ablaufverfolgungssitzung zu starten. Auf dem Computer kann jeweils nur eine Globale Protokollierungsablaufverfolgungssitzung ausgeführt werden.

Verwenden Sie Tracelog, um eine Globale Protokollierungsablaufverfolgungssitzung zu erstellen. Es erstellt automatisch den Registrierungsunterschlüssel und Einträge, in denen Ablaufverfolgungssitzungsoptionen gespeichert werden. Die Sitzung der globalen Protokollierungsverfolgung beginnt, wenn Sie den Computer neu starten. Weitere Informationen finden Sie unter Ablaufverfolgungsbefehlsyntax.

Verwenden Sie Tracefmt mit system.tmff, einer Im WDK enthaltenen Ablaufverfolgungsdatei , um die Ablaufverfolgungsmeldungen aus einer Global Logger-Ablaufverfolgungssitzung zu formatieren.

Da die globale Protokollierungssitzung durch Registrierungseinträge ausgelöst wird, wird sie jedes Mal ausgeführt, wenn die Einträge in der Registrierung angezeigt werden. Legen Sie den Wert des Starteintrags auf 0 fest, oder löschen Sie alle Registrierungseinträge, um zu verhindern, dass die globale Protokollierungssitzung jedes Mal gestartet wird.

Sie können eine Globale Protokollierungsablaufverfolgungssitzung in eine NT Kernel Logger-Ablaufverfolgungssitzung konvertieren, wodurch der Kernel während des Startvorgangs nachverfolgt wird. Weitere Informationen finden Sie unter Globale Protokollierungssitzung zur Startzeit.

Ablaufverfolgungsanbieter, z. B. Kernelmodustreiber und Benutzermodusanwendungen, können sich bei der Global Logger-Ablaufverfolgungssitzung anmelden. Dadurch können Sie einen Treiber oder einen anderen Ablaufverfolgungsanbieter während des Systemstarts nachverfolgen. Weitere Informationen finden Sie unter Protokollierung bei der globalen Protokollierungssitzung.

Einschränkungen der globalen Protokollierungsablaufverfolgungssitzung

Die Globale Protokollierungsablaufverfolgungssitzung ist sehr nützlich, aber es ist wichtig, sich ihrer Einschränkungen bewusst zu sein:

Sie können jeweils nur eine globale Protokollierungssitzung ausführen.

Die globale Protokollierungssitzung sendet keine Aktivierungsbenachrichtigung an Anbieter.

Die Global Logger-Registrierungseinträge verbleiben in der Registrierung und sind wirksam, bis Sie sie manuell zurücksetzen oder löschen oder den Befehl tracelog -remove verwenden. Bis Sie sie zurückgesetzt haben, wird die globale Protokollierungssitzung jedes Mal gestartet, wenn Sie das System starten.

Die Windows ACPI-Protokollierung ist für die Ablaufverfolgungssitzung der globalen Protokollierung dauerhaft aktiviert. Die Ablaufverfolgungsmeldungen dieser Protokollierung werden im Ablaufverfolgungsprotokoll angezeigt.

Wenn eine Standardablaufverfolgungssitzung beginnt, während sich ein Treiber bei der globalen Protokollierungssitzung protokolliert, wechselt der Treiber und beginnt mit der Protokollierung zur Standardablaufverfolgungssitzung.

Globale Protokollierungsregistrierungseinträge

In der folgenden Tabelle sind die Registrierungseinträge aufgeführt, die die globale Protokollierungssitzung konfigurieren. Diese Einträge befinden sich im Unterschlüssel HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger . Nur der Starteintrag ist erforderlich.

Zusätzlich zu den Registrierungseinträgen in dieser Tabelle können Sie auch einen ControlGUID-Unterschlüssel unter dem Unterschlüssel GlobalLogger hinzufügen, um einen Ablaufverfolgungsanbieter, z. B. einen Treiber, darzustellen, der sich an der Global Logger-Ablaufverfolgungssitzung protokolliert. Weitere Informationen finden Sie unter Protokollierung bei der globalen Protokollierungssitzung.

Eingabe Datentyp Beschreibung

Starten

REG_DWORD

Wenn sie auf 1 (ein) festgelegt ist, wird die globale Protokollierungssitzung beim nächsten Systemstart gestartet.

0 = off, 1=on

BufferSize

REG_DWORD

Gibt die Größe der einzelnen Puffer (in KB) an. Der Standardwert ist 0x40 (64 KB).

ClockType

REG_DWORD

Gibt den Timer an, der für Zeitstempel für Ablaufverfolgungsmeldungen verwendet wird.

Ab Windows Vista ist der Standardwert 1. Unter Betriebssystemen vor Windows Vista ist der Standardwert 2.

1 = Leistungsindikatorwert (hohe Auflösung)

2 = Systemtimer

3 = CPU-Taktuhr

EnableKernelFlags

REG_BINARY

Konvertiert die globale Protokollierungssitzung in eine NT Kernel Logger-Ablaufverfolgungssitzung und gibt die ereignisse an, die in der Kernelablaufverfolgung enthalten sind.

Weitere Informationen finden Sie unter Globale Protokollierungssitzung zur Startzeit.

FileCounter

REG_DWORD

Speichert die Anzahl von Ereignisablaufverfolgungsprotokolldateien, die von globalen Protokollierungssitzungen generiert wurden.

Das System erhöht diesen Wert, bis er den Wert von FileMax erreicht. Anschließend wird der Wert auf 0 zurückgesetzt.

Dieser Indikator verhindert, dass das System eine Ablaufverfolgungsprotokolldatei für die globale Protokollierung überschreibt.

FileMax

REG_DWORD

Gibt die maximale Anzahl von Ereignisablaufverfolgungsprotokolldateien an, die auf dem System zulässig sind.

Wenn die Anzahl der Ablaufverfolgungsprotokolle das angegebene Maximum erreicht, beginnt das System, die Protokolle zu überschreiben, beginnend mit dem ältesten.

Der Standardwert ist 0, was bedeutet, dass es kein Maximum gibt.

FileName

REG_SZ

Pfad (optional) und Dateiname der Ereignisablaufverfolgungsprotokolldatei. Der Standardwert ist %SystemRoot%\System32\LogFiles\WMI\trace.log.

FlushTimer

REG_DWORD

Gibt an, wie oft (in Sekunden) die Ablaufverfolgungspuffer gewaltsam geleert werden. Diese erzwungene Leerung erfolgt zusätzlich zu der automatischen Leerung, die auftritt, wenn ein Puffer voll ist und wenn die Ablaufverfolgungssitzung beendet wird.

Der Standardwert ist 0. Standardmäßig werden Puffer nur geleert, wenn sie voll sind.

Die minimale Spülzeit beträgt 1 Sekunde.

LogFileMode

REG_DWORD

Gibt Protokollsitzungsoptionen an.

Wird nur in Windows Vista und höheren Versionen von Windows unterstützt.

MaximumBuffers

REG_DWORD

Gibt die maximale Anzahl von Puffern an, die für die Sitzung zugewiesen werden können. Der Standardwert ist 0x19 (25).

MaximumFileSize

REG_DWORD

Gibt die maximale Größe der Ereignisablaufverfolgungsprotokolldatei an. Standardmäßig gibt es keine maximale Dateigröße.

MinimumBuffers

REG_DWORD

Gibt die Anzahl der Puffer an, die beim Start der Sitzung zugewiesen werden. Der Standardwert ist 0x3.

Status

REG_DWORD

Speichert den Rückgabecode aus dem Versuch, eine Globale Protokollierungsablaufverfolgungssitzung zu starten.

Wenn die Sitzung nicht gestartet werden konnte, ist der Wert dieses Eintrags ein Win32-Fehlercode. Wenn die Sitzung gestartet wurde, ist der Wert dieses Eintrags ERROR_SUCCESS.

Diese Registrierungseinträge, die Sie erstellen, verbleiben in der Registrierung und sind wirksam, bis Sie sie löschen oder ihre Werte ändern. Verwenden Sie daher nach Ausführung der globalen Protokollierungssitzung den Befehl tracelog -remove GlobalLogger , um den Wert des Starteintrags auf 0 festzulegen und die anderen Registrierungseinträge der globalen Protokollierung zu löschen. Andernfalls wird die globale Protokollierungssitzung jedes Mal ausgeführt, wenn Sie den Computer neu starten, und die resultierende Protokolldatei kann sehr groß werden.

Protokollierungsmoduskonstanten

In der folgenden Tabelle werden die gültigen Werte für den Registrierungseintrag LogFileMode im Unterschlüssel HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger angezeigt. Dieser Eintrag wird verwendet, um Optionen für eine globale Protokollierungsablaufverfolgungssitzung festzulegen, einschließlich derer für Echtzeit-Ablaufverfolgungssitzungen, private Ablaufverfolgungssitzungen, Zirkelprotokollierung und Pufferung (kein Protokoll). Dieser Registrierungseintrag wird nur in Windows Vista und höheren Versionen von Windows unterstützt.

Dieser Registrierungseintrag entspricht dem LogFileMode-Element der EVENT_TRACE_PROPERTIES-Struktur. Die Werte entsprechen den Konstanten im Protokollierungsmodus. Die EVENT_TRACE_PROPERTIES-Struktur und die Protokollierungsmoduskonstanten werden in der Microsoft Windows SDK-Dokumentation beschrieben.

Diese Tabelle wird hier angezeigt, um die Hexadezimalwerte der Konstanten anzuzeigen. Verwenden Sie diese Werte oder eine Summe dieser Werte, um die Konstante im Registrierungseintrag LogFileMode darzustellen.

Wert Konstante Beschreibung

0x0

EVENT_TRACE_FILE_MODE_NONE

Es werden keine Ereignisablaufverfolgungsprotokolldateien erstellt.

0x1

EVENT_TRACE_FILE_MODE_SEQUENTIAL

Ereignisablaufverfolgungsprotokolldateien sind sequenziell.

0x2

EVENT_TRACE_FILE_MODE_CIRCULAR

Ereignisablaufverfolgungsprotokolldateien sind Zirkeldateien.

0x4

EVENT_TRACE_FILE_MODE_APPEND

Fügen Sie Ablaufverfolgungsmeldungen an eine vorhandene Protokolldatei an. Dieser Modus ist nur bei sequenziellen Dateien gültig.

0x8

EVENT_TRACE_FILE_MODE_NEWFILE

Erstellen Sie eine neue Ereignisablaufverfolgungsprotokolldatei, wenn die vorhandene Datei den Wert des Eintrags MaximumFileSize erreicht (siehe tabelle oben).

0x20

EVENT_TRACE_FILE_MODE_PREALLOCATE

Reserviert Speicherplatz für die Ereignisablaufverfolgungsprotokolldatei.

Gilt nur mit EVENT_TRACE_FILE_MODE_SEQUENTIAL oder EVENT_TRACE_FILE_MODE_CIRCULAR und nicht mit EVENT_TRACE_FILE_MODE_NEWFILE.

0x40

EVENT_TRACE_NONSTOPPABLE_MODE

Ein Aufruf von StopTrace beendet die Ablaufverfolgungssitzung nicht.

Dieses Feature verhindert, dass Benutzer Ablaufverfolgungssitzungen beenden, die das System zur Diagnose und Optimierung benötigt.

0x100

EVENT_TRACE_REAL_TIME_MODE

Gibt eine Echtzeitablaufverfolgungssitzung an.

0x200

EVENT_TRACE_DELAY_OPEN_FILE_MODE

Nur zur internen Verwendung.

0x400

EVENT_TRACE_BUFFERING_MODE

Ereignisse werden in den Puffern beibehalten. Sie werden niemals in eine Protokolldatei geschrieben oder an einen Ablaufverfolgungsverbraucher übermittelt.

0x800

EVENT_TRACE_PRIVATE_LOGGER_MODE

Gibt eine private Ablaufverfolgungssitzung an. Dieses Flag ist für eine globale Protokollierungsablaufverfolgungssitzung ungültig.

0x1000

EVENT_TRACE_ADD_HEADER_MODE

Nur zur internen Verwendung.

0x2000

EVENT_TRACE_USE_KBYTES_FOR_SIZE

Interpretieren Sie den Wert von MaximumFileSize in KB anstelle von MB.

0x4000

EVENT_TRACE_USE_GLOBAL_SEQUENCE

Generiert globale Sequenznummern für Ablaufverfolgungsmeldungen. Diese Zahlen sind für alle Ablaufverfolgungssitzungen auf dem Computer eindeutig.

Standardmäßig weisen Ablaufverfolgungsmeldungen keine Sequenznummern auf.

0x8000

EVENT_TRACE_USE_LOCAL_SEQUENCE

Generiert lokale Sequenznummern für Ablaufverfolgungsmeldungen. Diese Zahlen sind innerhalb der Ablaufverfolgungssitzung eindeutig.

Standardmäßig weisen Ablaufverfolgungsmeldungen keine Sequenznummern auf.

0x10000

EVENT_TRACE_RELOG_MODE

Nur zur internen Verwendung.

0x80000

EVENT_TRACE_KD_FILTER_MODE

Leitet die Ablaufverfolgungsmeldungen an den Kerneldebugger um und legt die Ablaufverfolgungspuffergröße auf 3 KB fest, die maximale Puffergröße für den Debugger.

0x1000000

EVENT_TRACE_MODE_RESERVED

Ungültig für eine globale Protokollierungsablaufverfolgungssitzung.

0x01000000

EVENT_TRACE_USE_PAGED_MEMORY

Ordnen Sie Ablaufverfolgungssitzungspuffer aus auslagerungsfähigem Arbeitsspeicher zu. Standardmäßig werden die Puffer aus dem nicht auslässigen Arbeitsspeicher zugeordnet.