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. |