Konfigurieren und Starten einer AutoLogger-Sitzung
Die AutoLogger-Ereignisablaufverfolgungssitzung zeichnet Ereignisse auf, die zu einem frühen Zeitpunkt beim Startvorgang des Betriebssystems auftreten. Anwendungen und Gerätetreiber können die AutoLogger-Sitzung verwenden, um Ablaufverfolgungen zu erfassen, bevor sich der Benutzer anmeldet. Beachten Sie, dass einige Gerätetreiber, z. B. Datenträgergerätetreiber, nicht geladen werden, wenn die AutoLogger-Sitzung beginnt.
Die AutoLogger unterscheidet sich in folgender Weise von der globalen Protokollierung:
- Sie können eine oder mehrere AutoLogger-Sitzungen angeben (die globale Protokollierung war eine einzelne Sitzung, für die alle Ereignisse protokolliert haben).
- Die AutoLogger sendet eine Aktivierungsbenachrichtigung an die Anbieter, wenn die Sitzung gestartet wird (die globale Protokollierung hat keine Aktivierungsbenachrichtigung an die Anbieter gesendet, sodass sich die Anbieter auf andere Mittel verlassen mussten, um zu wissen, ob die globale Protokollierungssitzung gestartet wurde, um mit der Protokollierung von Ereignissen zu beginnen).
- Die AutoLogger unterstützt keine Protokollierung von NT-Kernelprotokollierungsereignissen (siehe EnableFlags-Member von EVENT_TRACE_PROPERTIES). Zum Protokollieren von NT-Kernelprotokollierungsereignissen müssen Sie die globale Protokollierung verwenden.
Weitere Informationen zur globalen Protokollierung finden Sie unter Konfigurieren und Starten der globalen Protokollierungssitzung.
Hinweis
ETW unterstützt die AutoLogger unter Windows Vista und höher. Verwenden Sie die globale Protokollierung unter früheren Betriebssystemen.
Sie verwenden die Registrierung, um die AutoLogger-Sitzung zu konfigurieren. Fügen Sie den folgenden Registrierungsschlüssel hinzu, falls er noch nicht vorhanden ist:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
Erstellen Sie unter dem Autologger-Schlüssel einen Schlüssel für jede AutoLogger-Sitzung, die Sie konfigurieren möchten, wie im folgenden Beispiel gezeigt.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
\Logger Session A
\Logger Session B
\Logger Session C
Erstellen Sie für jede Sitzung einen Schlüssel für jeden Anbieter, den Sie für die Sitzung aktivieren möchten. Verwenden Sie die GUID des Anbieters als Schlüssel.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\WMI
\Autologger
\Logger Session A
\{ProviderGuid1}
\{ProviderGuid2}
\Logger Session B
\Logger Session C
In der folgenden Tabelle werden die Werte beschrieben, die Sie für jede AutoLogger-Sitzung definieren können. Sie müssen über Administratorrechte verfügen, um diese Registrierungswerte anzugeben. Der Start - und guid-Wert sind die einzigen Werte, die zum Starten der AutoLogger-Sitzung erforderlich sind. 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 |
---|---|---|
BufferSize | REG_DWORD | Die Größe jedes Puffers in KB. 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.
Der Standardwert ist 1 (Leistungsindikatorwert) unter Windows Vista und höher. Vor Windows Vista ist der Standardwert 2 (Systemtimer). |
DisableRealtimePersistence | REG_DWORD | Um die Echtzeitpersistenz zu deaktivieren, legen Sie diesen Wert auf 1 fest. Der Standardwert ist 0 (aktiviert) für Echtzeitsitzungen. Wenn die Echtzeitpersistenz aktiviert ist, werden Echtzeitereignisse, die zum Zeitpunkt des Herunterfahrens des Computers nicht übermittelt wurden, beibehalten. Die Ereignisse werden dann an den Consumer übermittelt, wenn der Consumer das nächste Mal eine Verbindung mit der Sitzung herstellt. |
FileCounter | REG_DWORD | Legen Oder ändern Sie diesen Wert nicht. Dieser Wert ist die Seriennummer, die verwendet wird, um den Namen der Protokolldatei zu erhöhen, wenn FileMax angegeben ist. Wenn der Wert ungültig ist, wird 1 angenommen. |
FileName | REG_SZ | Der vollqualifizierte Pfad der Protokolldatei. Der Pfad zu dieser Datei muss vorhanden sein. Die Protokolldatei ist eine sequenzielle Protokolldatei. Der Pfad ist auf 1024 Zeichen beschränkt. Wenn FileName nicht angegeben ist, werden Ereignisse in %SystemRoot%\System32\LogFiles\WMI<sessionname.etl> geschrieben. |
FileMax | REG_DWORD | Die maximale Anzahl von Instanzen der Protokolldatei, die ETW erstellt. 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<sessionname.etl>. NNNN. Beim ersten Starten des Computers lautet <der Dateiname sessionname.etl.0001>, beim zweiten Mal sessionname.etl.0002>< usw. Wenn FileMax 3 ist, setzt ETW den Zähler beim vierten Neustart des Computers auf 1 zurück und überschreibt <sessionname.etl.0001>, sofern vorhanden. Die maximale Anzahl von Instanzen der Protokolldatei, die unterstützt werden, ist 16. Verwenden Sie dieses Feature nicht mit dem EVENT_TRACE_FILE_MODE_NEWFILE Protokolldateimodus. |
FlushTimer | REG_DWORD | Wie oft in Sekunden die Ablaufverfolgungspuffer gewaltsam geleert werden. Die minimale Spülzeit beträgt 1 Sekunde. Diese erzwungene Leerung erfolgt zusätzlich zu der automatischen Leerung, die auftritt, wenn ein Puffer voll ist und wenn die Ablaufverfolgungssitzung beendet wird. Für den Fall einer Echtzeitprotokollierung bedeutet der Wert 0 (Standardwert), dass die Spülzeit auf 1 Sekunde festgelegt wird. Bei einer Echtzeitprotokollierung ist LogFileMode auf EVENT_TRACE_REAL_TIME_MODE festgelegt. Der Standardwert ist 0. Standardmäßig werden Puffer nur geleert, wenn sie voll sind. |
Guid | REG_SZ | Eine Zeichenfolge, die eine GUID enthält, die die Sitzung eindeutig identifiziert. Dieser Wert ist erforderlich. |
LogFileMode | REG_DWORD | Geben Sie mindestens einen Protokollmodus an. Mögliche Werte finden Sie unter Protokollierungsmoduskonstanten. Der Standardwert ist EVENT_TRACE_FILE_MODE_SEQUENTIAL. Anstatt in eine Protokolldatei zu schreiben, können Sie entweder EVENT_TRACE_BUFFERING_MODE oder EVENT_TRACE_REAL_TIME_MODE angeben. Die Angabe EVENT_TRACE_BUFFERING_MODE vermeidet die Kosten für das Leeren des Sitzungsinhalts auf den Datenträger, wenn das Dateisystem verfügbar wird. Beachten Sie, dass die Verwendung von EVENT_TRACE_BUFFERING_MODE dazu führt, dass das System den Wert MaximumBuffers ignoriert, da die Puffergröße stattdessen das Produkt von MinimumBuffers und BufferSize ist. AutoLogger-Sitzungen unterstützen den EVENT_TRACE_FILE_MODE_NEWFILE Protokollierungsmodus nicht. Wenn EVENT_TRACE_FILE_MODE_APPEND angegeben ist, muss BufferSize explizit bereitgestellt werden und muss sowohl in der Protokollierung als auch in der angefügten Datei identisch sein. |
Maxfilesize | REG_DWORD | Die maximale Dateigröße der Protokolldatei in Megabyte. Die Sitzung wird geschlossen, wenn die maximale Größe erreicht ist, es sei denn, Sie befinden sich im Modus der Kreisprotokolldatei. Um kein Limit anzugeben, legen Sie den Wert auf 0 fest. Der Standardwert ist 100 MB, falls nicht festgelegt. Das Verhalten, das auftritt, wenn die maximale Dateigröße erreicht wird, hängt vom Wert von LogFileMode ab. |
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. |
MinimumBuffers | REG_DWORD | Die Mindestanzahl von Puffern, die beim Start 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. |
Starten | REG_DWORD | Damit die AutoLogger-Sitzung beim nächsten Neustart des Computers gestartet wird, legen Sie diesen Wert auf 1 fest. Legen Sie andernfalls diesen Wert auf 0 fest. |
Status | REG_DWORD | Die Start-status der AutoLogger.The startup status of the AutoLogger. Wenn die AutoLogger nicht gestartet werden konnte, ist der Wert dieses Schlüssels der entsprechende Win32-Fehlercode. Wenn die AutoLogger erfolgreich gestartet wurde, ist der Wert dieses Schlüssels ERROR_SUCCESS (0). |
Booten | REG_DWORD | Dieses Feature sollte nicht außerhalb von Debugszenarien verwendet werden. Wenn dieser Registrierungsschlüssel auf 1 festgelegt ist, wird die automatische Protokollierung während der Kernelinitialisierung früher als normal gestartet, sodass Ereignisse während der Initialisierung vieler wichtiger Kernelsubsysteme erfasst werden können. Das Aktivieren dieser Option hat jedoch negative Auswirkungen auf die Startzeiten und erzwingt zusätzliche Einschränkungen für die automatische Protokollierung. Wenn dieses Feature aktiviert ist, muss die GUID für die Automatische Protokollierungssitzung aufgefüllt werden, und viele andere Einstellungen für die automatische Protokollierung funktionieren möglicherweise nicht. Dieser Schlüssel wird unter Windows Server 2022 und höher unterstützt. |
In der folgenden Tabelle werden die Werte beschrieben, die Sie für jeden Anbieter definieren können, den Sie für Ihre Sitzung aktivieren möchten. Sie müssen über Administratorrechte verfügen, um diese Registrierungswerte angeben zu können. Wenn Sie einen Wert angeben, den ETW nicht unterstützen kann, überschreibt ETW den Wert.
Wert | type | BESCHREIBUNG |
---|---|---|
Aktiviert | REG_DWORD | Bestimmt, ob der Anbieter aktiviert ist. Legen Sie diesen Wert auf 1 fest, um den Anbieter zu aktivieren. Um den Anbieter zu deaktivieren, legen Sie diesen Wert auf 0 fest. Die Standardeinstellung ist 0. |
EnableFlags | REG_DWORD | Vom Anbieter definierter Wert, der die Klasse von Ereignissen angibt, für die der Anbieter Ereignisse generiert. Ausführliche Informationen finden Sie im EnableFlags-Parameter der EnableTrace-Funktion . Geben Sie diesen Wertnamen an, wenn der Anbieter MatchAnyKeyword oder MatchAllKeyword nicht unterstützt. |
EnableLevel | REG_DWORD | Vom Anbieter definierter Wert, der die Detailebene angibt, die im Ereignis enthalten ist. Beispielsweise können Sie diesen Wert verwenden, um den Schweregrad der Ereignisse (Information, Warnung, Fehler) anzugeben, die der Anbieter generiert. Eine Liste der vordefinierten Ebenen finden Sie im Levelparameter der EnableTraceEx-Funktion . |
EnableProperty | REG_DWORD | Verwenden Sie diesen Wert, um mindestens eins der folgenden Elemente in die Protokolldatei einzuschließen:
|
MatchAnyKeyword | REG_QWORD | Bitmaske von Schlüsselwörtern, die die Kategorie der Ereignisse bestimmen, die der Anbieter schreiben soll. Der Anbieter schreibt das Ereignis, wenn eines der Schlüsselwort (keyword) Bits des Ereignisses mit einem der in dieser Maske festgelegten Bits übereinstimmt. Legen Sie diesen Wert auf Null fest, um anzugeben, dass der Anbieter alle Ereignisse schreibt. Ein Beispiel finden Sie im Abschnitt Hinweise der EnableTraceEx-Funktion . |
MatchAllKeyword | REG_QWORD | Diese Bitmaske ist optional. Diese Maske schränkt die Kategorie von Ereignissen, die der Anbieter schreiben soll, weiter ein. Wenn die Schlüsselwort (keyword) des Ereignisses die MatchAnyKeyword-Bedingung erfüllt, schreibt der Anbieter das Ereignis nur, wenn alle Bits in dieser Maske im Schlüsselwort (keyword) des Ereignisses vorhanden sind. Diese Maske wird nicht verwendet, wenn MatchAnyKeyword null ist. Ein Beispiel finden Sie im Abschnitt Hinweise der EnableTraceEx-Funktion . |
Nachdem die Registrierung geändert wurde, wird die AutoLogger-Sitzung beim nächsten Neustart des Computers gestartet. Die AutoLogger-Sitzung ruft die EnableTraceEx-Funktion auf, um die Anbieter zu aktivieren.
Die AutoLogger-Sitzungen erhöhen die Systemstartzeit und sollten sparsam verwendet werden. Dienste, die Während des Startvorgangs Informationen erfassen möchten, sollten erwägen, sich selbst Controllerlogik hinzuzufügen, anstatt die AutoLogger-Sitzung zu verwenden.
Um eine AutoLogger-Sitzung zu beenden, rufen Sie die ControlTrace-Funktion auf. Der Sitzungsname, den Sie an die Funktion übergeben, ist der Name des Registrierungsschlüssels, den Sie zum Definieren der Sitzung in der Registrierung verwendet haben.
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 Protokollierungssitzung.
Ausführliche Informationen zum Starten einer NT-Kernelprotokollierungssitzung finden Sie unter Konfigurieren und Starten der NT-Kernelprotokollierungssitzung.