Freigeben über


Konfigurieren und Starten einer AutoLogger-Sitzung

Die AutoLogger-Ereignisablaufverfolgungssitzung zeichnet Ereignisse auf, die frühzeitig beim Startvorgang des Betriebssystems auftreten. Anwendungen und Gerätetreiber können die AutoLogger-Sitzung verwenden, um Traces 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.

Der AutoLogger unterscheidet sich von der globalen Logger auf folgende Weise:

  • Sie können eine oder mehrere AutoLogger-Sitzungen angeben (der globale Logger war eine einzelne Sitzung, für die alle Ereignisse protokolliert haben).
  • Der AutoLogger sendet eine Aktivierungsbenachrichtigung an die Anbieter, wenn die Sitzung gestartet wird (der globale Logger hat keine Aktivierungsbenachrichtigung an die Anbieter gesendet, sodass die Anbieter andere Mittel benötigen, um zu wissen, ob die globale Logger-Sitzung gestartet wurde, um mit der Protokollierung von Ereignissen zu beginnen).
  • Der AutoLogger unterstützt die Protokollierung von NT Kernel Logger-Ereignissen nicht (siehe EnableFlags-Mitglied von EVENT_TRACE_PROPERTIES). Um NT Kernel Logger-Ereignisse zu protokollieren, müssen Sie den globalen Logger verwenden.

Weitere Informationen zur globalen Logger-Sitzung finden Sie unter Konfigurieren und Starten der globalen Loggersitzung.

Hinweis

ETW unterstützt den AutoLogger unter Windows Vista und höher. Verwenden Sie den globalen Logger auf 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. Der Wert "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, den ETW nicht unterstützen kann, überschreibt ETW den Wert.

Wert Typ BESCHREIBUNG
BufferSize- REG_DWORD Die Größe jedes Puffers in Kilobyte. Sollte kleiner als ein Megabyte sein. ETW verwendet die Größe des physischen Speichers, um diesen Wert zu berechnen.
Uhrtyp REG_DWORD Der Zeitgeber, der beim Protokollieren des Zeitstempels für jedes Ereignis verwendet werden soll.
  • 1 = Leistungszählerwert (hohe Genauigkeit)
  • 2 = Systemzeitgeber
  • 3 = CPU-Zykluszähler
Eine Beschreibung der einzelnen Takttypen finden Sie im ClientContext-Mitglied von WNODE_HEADER.
Der Standardwert ist 1 (Leistungsindikatorwert) unter Windows Vista und höher. Vor Windows Vista ist der Standardwert 2 (Systemzeitgeber).
EchtzeitpersistenzDeaktivieren REG_DWORD Um die Persistenz in Echtzeit 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 beim Herunterfahren des Computers nicht übermittelt wurden, beibehalten. Die Ereignisse werden dann beim nächsten Herstellen einer Verbindung mit der Sitzung an den Verbraucher übermittelt.
FileCounter REG_DWORD Legen Sie diesen Wert nicht fest 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.
Dateiname 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, ist das Format %SystemRoot%\System32\LogFiles\WMI\<sessionname.etl>NNNN.
Wenn der Computer zum ersten Mal gestartet wird, lautet <der Dateiname "sessionname.etl.0001>", das zweite Mal ist <der Dateiname "sessionname.etl.0002>" usw. Wenn FileMax 3 ist, setzt ETW beim vierten Neustart des Computers den Zähler auf 1 zurück und überschreibt <"sessionname.etl.0001>", falls vorhanden.
Die maximale Anzahl von Instanzen der unterstützten Protokolldatei beträgt 16.
Verwenden Sie dieses Feature nicht mit dem EVENT_TRACE_FILE_MODE_NEWFILE Protokolldateimodus.
FlushTimer REG_DWORD Wie oft die Ablaufverfolgungspuffer in Sekunden zwangsweise geleert werden. Die minimale Spülzeit beträgt 1 Sekunde. Diese erzwungene Flushing kommt zusätzlich zur automatischen Flushing, die auftritt, wenn ein Puffer voll ist und wenn die Tracing-Sitzung beendet wird.
Für den Fall eines Echtzeitprotokollierers bedeutet ein Wert von Null (Standardwert), dass die Leerzeit auf 1 Sekunde festgelegt wird. Ein Echtzeitprotokollierer liegt vor, wenn LogFileMode auf EVENT_TRACE_REAL_TIME_MODE festgelegt ist.
Der Standardwert ist 0. Standardmäßig werden Puffer nur geleert, wenn sie voll sind.
Leitfaden 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 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.
Wenn Sie EVENT_TRACE_BUFFERING_MODE angeben, werden die Kosten für das Leeren des Inhalts der Sitzung auf den Datenträger vermieden, wenn das Dateisystem verfügbar wird.
Beachten Sie, dass die Verwendung von EVENT_TRACE_BUFFERING_MODE dazu führt, dass 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 muss sowohl im Logger 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 Zirkelprotokolldateimodus. Um keinen Grenzwert 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 von Puffern, die zugewiesen werden sollen. In der Regel ist dieser Wert die minimale Anzahl von Puffern plus zwanzig. 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 der Puffer, die beim Start zugewiesen werden sollen. Die mindeste Anzahl von Puffern, die Sie angeben können, ist zwei Puffer pro Prozessor. Beispielsweise beträgt auf einem einzelnen Prozessorcomputer die Mindestanzahl von Puffern zwei.
Starten REG_DWORD Damit die AutoLogger-Sitzung das nächste Mal gestartet wird, wenn der Computer neu gestartet wird, legen Sie diesen Wert auf 1 fest. andernfalls legen Sie diesen Wert auf 0 fest.
Status REG_DWORD Der Startstatus des AutoLoggers. Wenn der AutoLogger nicht gestartet werden konnte, ist der Wert dieses Schlüssels der entsprechende Win32-Fehlercode. Wenn der 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 der Autologger früher als normal während der Kernelinitialisierung gestartet, sodass er Ereignisse während der Initialisierung vieler wichtiger Kernel-Subsysteme erfassen kann. Die Aktivierung dieser Option wirkt sich jedoch negativ auf die Startzeiten aus und erzwingt zusätzliche Einschränkungen für den Autologger. Wenn diese Funktion aktiviert ist, muss die Sitzungs-GUID des Autologgers ausgefüllt werden, und viele andere Autologger-Einstellungen 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 anzugeben. Wenn Sie einen Wert angeben, den ETW nicht unterstützen kann, überschreibt ETW den Wert.

Wert Typ 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. Der Standardwert ist 0.
EnableFlags REG_DWORD Vom Anbieter definierter Wert, der die Ereignisklasse 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. Sie können diesen Wert beispielsweise 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 ein oder mehrere der folgenden Elemente in die Protokolldatei einzuschließen:
  • EVENT_ENABLE_PROPERTY_SID (0x00000001) = Fügen Sie den Sicherheitsbezeichner (SID) des Benutzers in die erweiterten Daten ein.
  • EVENT_ENABLE_PROPERTY_TS_ID (0x00000002) = Fügen Sie den Terminalsitzungsbezeichner in die erweiterten Daten ein.
  • EVENT_ENABLE_PROPERTY_STACK_TRACE (0x00000004) = Fügen Sie in die erweiterten Daten eine Aufrufstapelablaufverfolgung für Ereignisse ein, die mit EventWrite geschrieben wurden.
  • EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0 (0x00000010) = Filtert alle Ereignisse aus, für die kein Schlüsselwort ungleich Null angegeben ist.
  • EVENT_ENABLE_PROPERTY_PROVIDER_GROUP (0x00000020) = Gibt an, dass dieser Aufruf von EnableTraceEx2 eine Anbietergruppe anstelle eines einzelnen Ereignisanbieters aktivieren soll.
  • EVENT_ENABLE_PROPERTY_PROCESS_START_KEY (0x00000080) = Einschließen des Prozessstartschlüssels in die erweiterten Daten.
  • EVENT_ENABLE_PROPERTY_EVENT_KEY (0x00000100) = Den Ereignisschlüssel in die erweiterten Daten einschließen.
  • EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE (0x00000200) = Filtert alle Ereignisse aus, die entweder als InPrivate-Ereignis gekennzeichnet sind oder aus einem Prozess stammen, der als InPrivate gekennzeichnet ist.
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 von Ereignissen 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 übereinstimmt. Um anzugeben, dass der Anbieter alle Ereignisse schreibt, legen Sie diesen Wert auf Null fest. Ein Beispiel finden Sie im Abschnitt "Hinweise" der Funktion "EnableTraceEx ".
MatchAllKeyword- REG_QWORD Diese Bitmaske ist optional. Diese Maske schränkt die Kategorie der Ereignisse, die der Anbieter schreiben soll, weiter ein. 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 null ist. Ein Beispiel finden Sie im Abschnitt "Hinweise" der Funktion "EnableTraceEx ".

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 das Hinzufügen von Controllerlogik zu sich selbst in Betracht ziehen, anstatt die AutoLogger-Sitzung zu verwenden.

Rufen Sie die ControlTrace-Funktion auf, um eine AutoLogger-Sitzung zu beenden. 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 Loggersitzung finden Sie unter Konfigurieren und Starten einer privaten Loggersitzung.

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

Konfigurieren und Starten einer privaten Loggersitzung

Konfigurieren und Starten einer SystemTraceProvider-Sitzung

Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung

Konfigurieren und Starten der NT Kernel Logger-Sitzung

EnableTraceEx2

ENABLE_TRACE_PARAMETERS

EVENT_FILTER_DESCRIPTOR

PAYLOAD_FILTER_PREDICATE

TdhAggregatePayloadFilters

TdhCreatePayloadFilter

Aktualisieren einer Ereignisprotokollierungssitzung