Konfigurieren und Starten einer AutoLogger-Sitzung

Die AutoLogger-Ereignisablaufverfolgungssitzung zeichnet Ereignisse auf, die früh im Startprozess 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, zum Zeitpunkt des Beginns der AutoLogger-Sitzung nicht geladen werden.

Die AutoLogger unterscheidet sich wie folgt von der globalen Protokollierung:

  • Sie können eine oder mehrere AutoLogger-Sitzungen angeben (die globale Protokollierung war eine einzelne Sitzung, in der 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 die Anbieter auf andere Weise wissen mussten, 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 auf 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 Schlüssel autologger 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. Die Werte Start und GUID 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, der von ETW nicht unterstützt werden kann, überschreibt ETW den Wert.

Wert type Beschreibung
BufferSize REG_DWORD Die Größe der einzelnen Puffer in Kilobytes. Sollte kleiner als ein Megabyte sein. ETW verwendet die Größe des physischen Speichers, 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 = Systemzeiter
  • 3 = CPU-Zykluszähler
Eine Beschreibung der einzelnen Uhrtypen finden Sie im ClientContext-Member von WNODE_HEADER.
Der Standardwert ist 1 (Leistungsindikatorwert) für Windows Vista und höher. Vor der Windows Vista ist der Standardwert 2 (Systemzeiter).
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 beibehalten, die zum Zeitpunkt des Herunterfahrens des Computers nicht übermittelt wurden. 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 Sie diesen Wert nicht fest, oder ändern Sie diesen Wert nicht. Dieser Wert ist die Seriennummer, die zum Erhöhen des Protokolldateinamens verwendet wird, 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 & lt;Sitzungsname > .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 Standardprotokolldateiname verwendet wird, ist das Format %SystemRoot%\System32\LogFiles\WMI & lt;Sitzungsname > .etl. NNNN.
Wenn der Computer zum ersten Mal gestartet wird, ist der Dateiname < sessionname .etl.0001, beim zweiten Mal der Dateiname > < sessionname > .etl.0002 und so weiter. Wenn FileMax 3 ist, setzt ETW beim vierten Neustart des Computers den Zähler auf 1 zurück und überschreibt den Sitzungsnamen < > .etl.0001, sofern vorhanden.
Die maximale Anzahl unterstützter Instanzen der Protokolldatei beträgt 16.
Verwenden Sie dieses Feature nicht mit EVENT_TRACE_FILE_MODE_NEWFILE Protokolldateimodus.
FlushTimer REG_DWORD Gibt an, wie oft die Ablaufverfolgungspuffer in Sekunden erzürnt 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.
Bei einer Echtzeitprotokollierung bedeutet der Wert 0 (Standardwert) , dass die Leerungszeit auf 1 Sekunde festgelegt wird. Eine Echtzeitprotokollierung ist , wenn LogFileMode auf EVENT_TRACE_REAL_TIME_MODE.
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 einen oder mehrere Protokollmodi an. Mögliche Werte finden Sie unter Protokollierungsmoduskonst constants. 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.
Wenn sie EVENT_TRACE_BUFFERING_MODE, werden die Kosten für das Leeren des Sitzungsinhalts auf den Datenträger vermieden, wenn das Dateisystem verfügbar wird.
Beachten Sie, EVENT_TRACE_BUFFERING_MODE das System den MaximumBuffers-Wert 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 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 wird, es sei denn, Sie befinden sich im kreisförmigen Protokolldateimodus. Um kein Limit anzugeben, legen Sie den Wert auf 0 fest. Der Standardwert ist 100 MB, wenn er nicht festgelegt ist. 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 zu reservierenden Puffer. In der Regel ist dieser Wert die Mindestanzahl von Puffern plus 20. ETW verwendet die Puffergröße und die Größe des physischen Speichers, 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 reserviert werden. 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.
Start REG_DWORD Legen Sie diesen Wert auf 1 fest, damit die AutoLogger-Sitzung beim nächsten Neustart des Computers gestartet wird. Legen Sie andernfalls diesen Wert auf 0 fest.
Status REG_DWORD Der Startstatus der AutoLogger. Wenn die AutoLogger nicht gestartet werden konnte, ist der Wert dieses Schlüssels der entsprechende Win32-Fehlercode. Wenn die AutoLogger erfolgreich gestartet wurde, wird der Wert dieses Schlüssels ERROR_SUCCESS (0) angezeigt.
Start 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 Kernelin initialisierung früher als normal gestartet, sodass Ereignisse während der Initialisierung vieler wichtiger Kernelsubsysteme erfasst werden können. Die Aktivierung dieser Option wirkt sich jedoch negativ auf die Startzeiten aus und erzwingt zusätzliche Einschränkungen für die Automatische Protokollierung. Wenn dieses Feature aktiviert ist, muss die Sitzungs-GUID der Automatischprotokollierung aufgefüllt werden, und viele andere Einstellungen für die automatische Protokollierung funktionieren möglicherweise nicht.
Dieser Schlüssel wird auf 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 anzugeben. Wenn Sie einen Wert angeben, der von ETW nicht unterstützt werden kann, überschreibt ETW den Wert.

Wert type Beschreibung
Aktiviert REG_DWORD Bestimmt, ob der Anbieter aktiviert ist. Um den Anbieter zu aktivieren, legen Sie diesen Wert auf 1 fest. 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 Ereignisklasse angibt, für die der Anbieter Ereignisse generiert. Weitere Informationen finden Sie unter dem 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. Sie können diesen Wert beispielsweise verwenden, um den Schweregrad der Ereignisse (Information, Warnung, Fehler) anzugeben, die der Anbieter generiert. Eine Liste vordefinierter Ebenen finden Sie unter dem Level-Parameter der EnableTraceEx-Funktion.
EnableProperty REG_DWORD Verwenden Sie diesen Wert, um eines oder mehrere der folgenden Elemente in die Protokolldatei ein-/ausderherzustellen:
  • EVENT_ENABLE_PROPERTY_SID (0x00000001) = Schließen Sie die Sicherheits-ID (SID) des Benutzers in die erweiterten Daten ein.
  • EVENT_ENABLE_PROPERTY_TS_ID (0x00000002) = Schließen Sie den Terminalsitzungsbezeichner in die erweiterten Daten ein.
  • EVENT_ENABLE_PROPERTY_STACK_TRACE (0x00000004) = Eine Aufrufliste-Ablaufverfolgung für Ereignisse, die mit EventWrite geschrieben wurden, in die erweiterten Daten ein.
  • EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0 (0x00000010) = Filtert alle Ereignisse heraus, für die kein Schlüsselwort ohne Null angegeben ist.
  • EVENT_ENABLE_PROPERTY_PROVIDER_GROUP (0x00000020) = Gibt an, dass dieser Aufruf von EnableTraceEx2 anstelle eines einzelnen Ereignisanbieters eine Anbietergruppe aktivieren soll.
  • EVENT_ENABLE_PROPERTY_PROCESS_START_KEY (0x00000080) = Schließen Sie den Prozessstartschlüssel in die erweiterten Daten ein.
  • EVENT_ENABLE_PROPERTY_EVENT_KEY (0x00000100) = Schließen Sie den Ereignisschlüssel in die erweiterten Daten ein.
  • EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE (0x00000200) = Filtert alle Ereignisse heraus, die entweder als InPrivate-Ereignis markiert sind oder von einem Als InPrivate markierten Prozess stammen.
Weitere Informationen zu diesen Elementen finden Sie unter EnableProperty der ENABLE_TRACE_PARAMETERS Struktur.
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üsselwortbits des Ereignisses mit einem der in dieser Maske festgelegten Bits übereinstimmen. Um anzugeben, dass der Anbieter alle Ereignisse schreibt, legen Sie diesen Wert auf 0 (null) fest. Ein Beispiel finden Sie im Abschnitt "Hinweise" der EnableTraceEx-Funktion.
MatchAllKeyword REG_QWORD Diese Bitmaske ist optional. Diese Maske schränkt die Kategorie der Ereignisse weiter ein, die der Anbieter schreiben soll. Wenn das Schlüsselwort des Ereignisses die MatchAnyKeyword-Bedingung erfüllt, schreibt der Anbieter das Ereignis nur, wenn alle Bits in dieser Maske im Schlüsselwort des Ereignisses vorhanden sind. Diese Maske wird nicht verwendet, wenn MatchAnyKeyword 0 (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 nur wenig verwendet werden. Dienste, die Informationen während des Startprozesses erfassen möchten, sollten erwägen, sich selbst Controllerlogik hinzufü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.

In Windows 8.1,Windows Server 2012 R2 und höher können Ereignisnutzlast-, Bereichs- und Stapelüberwachungsfilter von der EnableTraceEx2-Funktion und den ENABLE TRACE _ _ PARAMETERS- und EVENT _ _ FILTER-DESCRIPTOR-Strukturen verwendet werden, um nach bestimmten Bedingungen in einer Protokollierungssitzung zu filtern. Weitere Informationen zu Ereignisnutzlastfiltern finden Sie in den Funktionen TdhCreatePayloadFilterund TdhAggregatePayloadFilters sowie in den STRUKTUREN ENABLE TRACE _ _ PARAMETERS, EVENT FILTER _ _ DESCRIPTOR und PAYLOAD FILTER _ _ PREDICATE.

Weitere Informationen zum Starten einer Ereignisablaufverfolgungssitzung finden Sie unter Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung.

Weitere Informationen zum Starten einer privaten Protokollierungssitzung finden Sie unter Konfigurieren und Starten einer privaten Protokollierungssitzung.

Weitere Informationen zum Starten einer NT-Kernelprotokollierungssitzung finden Sie unter Konfigurieren und Starten der NT-Kernelprotokollierungssitzung.

Konfigurieren und Starten einer privaten Protokollierungssitzung

Konfigurieren und Starten einer SystemTraceProvider-Sitzung

Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung

Konfigurieren und Starten der NT-Kernelprotokollierungssitzung

EnableTraceEx2

AKTIVIEREN VON _ ABLAUFVERFOLGUNGSPARAMETERN _

_ _ EREIGNISFILTERDESKRIPTOR

_ _ NUTZLASTFILTER-PRÄDIKAT

TdhAggregatePayloadFilters

TdhCreatePayloadFilter

Aktualisieren einer Ereignisablaufverfolgungssitzung