Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung

Verwenden Sie zum Konfigurieren einer Ereignisablaufverfolgungssitzung die EVENT_TRACE_PROPERTIES-Struktur , um die Eigenschaften der Sitzung anzugeben. Der Arbeitsspeicher, den Sie für die EVENT_TRACE_PROPERTIES Struktur zuweisen, muss groß genug sein, um auch die Sitzungs- und Protokolldateinamen zu enthalten, die der Struktur im Arbeitsspeicher folgen.

Nachdem Sie die Eigenschaften der Sitzung angegeben haben, rufen Sie die StartTrace-Funktion auf, um die Sitzung zu starten. Wenn die Funktion erfolgreich ist, enthält der SessionHandle-Parameter das Sitzungshandle, und die LoggerNameOffset-Eigenschaft enthält den Offset auf den Namen der Sitzung.

Um die Anbieter zu aktivieren, die Ereignisse in Ihrer Sitzung protokollieren möchten, rufen Sie die EnableTrace-Funktion auf, um klassische Anbieter und die EnableTraceEx-Funktion zu aktivieren , um manifestbasierte Anbieter zu aktivieren. Rufen Sie die Funktion EnableTraceEx2 auf, um Anbieter zu aktivieren, die Ereignisse unter bestimmten Bedingungen auf Windows 8.1, Windows Server 2012 R2 und höher bei der Sitzungsfilterung protokollieren möchten.

Darüber hinaus können Sie zusätzliche Informationen zu einem Ereignis mit einem Aufruf der TraceSetInformation-Funktion nachverfolgen . TraceSetInformation fügt zusätzliche Ablaufverfolgungsinformationen in den Erweiterten Datenabschnitt eines Ereignisses ein und kann Informationen wie die Informationen zur Ablaufverfolgungsversion oder die derzeit auf dem System registrierten Anbieter enthalten. Weitere Informationen finden Sie unter Abrufen zusätzlicher Ereignisablaufverfolgungsdaten.

Bis zu acht Ablaufverfolgungssitzungen können Ereignisse vom gleichen manifestbasierten Anbieter aktivieren und empfangen. Allerdings kann nur eine Ablaufverfolgungssitzung einen klassischen Anbieter aktivieren. Wenn mehr als eine Ablaufverfolgungssitzung versucht, einen klassischen Anbieter zu aktivieren, empfängt die erste Sitzung nicht mehr Ereignisse, wenn die zweite Sitzung den Anbieter aktiviert. Wenn beispielsweise Sitzung A Anbieter 1 und dann Anbieter B aktiviert hat, empfängt nur Sitzung B Ereignisse von Anbieter 1.

Sie können eine der drei Funktionen verwenden, um einen Anbieter zu aktivieren, aber Sie können die Funktionalität verlieren, wenn Sie EnableTrace verwenden, um einen manifestbasierten Anbieter zu aktivieren, da Sie keinen MatchAllKeyword-Wert angeben, keine erweiterten Datenelemente angeben können, die in das Ereignis eingeschlossen werden sollen, oder vom Anbieter definierte Filterdaten bereitstellen können. Weitere Informationen finden Sie im Abschnitt Hinweise zu den einzelnen Funktionen.

Auf Windows 8.1,Windows Server 2012 R2 und höher können Ereignisnutzlast-, Bereichs- und Stapellauffilter 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 TdhCreatePayloadFilter und TdhAggregatePayloadFilters sowie in den Strukturen ENABLE_TRACE_PARAMETERS, EVENT_FILTER_DESCRIPTOR und PAYLOAD_FILTER_PREDICATE .

Verwenden Sie einen der folgenden Befehle, um die Ebene und die Schlüsselwörter zu bestimmen, die zum Aktivieren eines manifestbasierten Anbieters verwendet werden:

  • Name desLogman-Abfrageanbieters
  • Wevtutilgp-Anbietername

Die Befehle listen nur die Ebene und schlüsselwörter auf. Der Anbieter muss alle Filterdatenanforderungen für potenzielle Controller dokumentieren.

Verwenden Sie Wevtutilep, um die manifestbasierten Anbieter aufzulisten.

Bei klassischen Anbietern liegt es beim Anbieter, den Schweregrad zu dokumentieren und potenziellen Controllern zur Verfügung zu stellen oder die unterstützten Flags zu aktivieren. Wenn der Anbieter von einem beliebigen Controller aktiviert werden möchte, sollte der Anbieter 0 für den Schweregrad akzeptieren und Flags aktivieren und 0 als Anforderung zum Ausführen der Standardprotokollierung (was auch immer das sein mag) interpretieren.

Sie können den Anbieter vor oder nach der Registrierung des Anbieters aktivieren. Nach dem Aktivieren des Anbieters ruft ETW dann die Rückruffunktion des Anbieters auf. Wenn der Anbieter nicht registriert ist, ruft ETW die Rückruffunktion des Anbieters auf, nachdem er sich registriert hat.

Sie können auch die EnableTrace-Funktion verwenden, um den Anbieter zu deaktivieren (die Protokollierung von Ereignissen an Ihrer Sitzung zu beenden) oder um die Protokollierungsebene zu aktualisieren oder Flags des Anbieters zu aktivieren. Mit der EnableTraceEx-Funktion können Sie den Anbieter deaktivieren oder die Ebene, Schlüsselwörter, erweiterte Daten und Filterdaten aktualisieren. Jedes Mal, wenn Sie die Funktion EnableTrace oder EnableTraceEx aufrufen, ruft ETW die Rückruffunktion des Anbieters auf. Der Anbieter bleibt für die Sitzung aktiviert, bis die Sitzung den Anbieter deaktiviert.

Um die Ablaufverfolgungssitzung nach dem Sammeln von Ereignissen zu beenden, rufen Sie die ControlTrace-Funktion auf, und übergeben Sie EVENT_TRACE_CONTROL_STOP als Steuerelementcode. Um die zu beendende Sitzung anzugeben, können Sie das Ereignisablaufverfolgungssitzungshandle aus einem früheren Aufruf der StartTrace-Funktion oder den Namen einer zuvor gestarteten Sitzung übergeben. Stellen Sie sicher, dass Sie alle Anbieter deaktivieren, bevor Sie die Sitzung beenden. Wenn Sie die Sitzung beenden, bevor Sie den Anbieter zuerst deaktivieren, deaktiviert ETW den Anbieter und versucht, die Steuerelementrückruffunktion des Anbieters aufzurufen. Wenn die Anwendung, die die Sitzung gestartet hat, beendet wird, ohne den Anbieter zu deaktivieren oder die ControlTrace-Funktion aufzurufen, bleibt der Anbieter aktiviert.

Wenn ControlTrace erfolgreich ist, werden die Sitzungseigenschaften aktualisiert, um die endgültigen Eigenschaftswerte und die Ausführungsstatistik für die Ereignisablaufverfolgungssitzung widerzuspiegeln.

Ein Beispiel zum Starten einer Ereignisablaufverfolgungssitzung finden Sie im Folgenden:

Ausführliche Informationen zum Starten einer Ablaufverfolgungssitzung finden Sie unter einer der folgenden Informationen:

Konfigurieren und Starten einer privaten Protokollierungssitzung

Konfigurieren und Starten einer SystemTraceProvider-Sitzung

Konfigurieren und Starten einer AutoLogger-Sitzung

Konfigurieren und Starten der NT-Kernelprotokollierungssitzung

ControlTrace

EnableTrace

EnableTraceEx

EnableTraceEx2

ENABLE_TRACE_PARAMETERS

EVENT_FILTER_DESCRIPTOR

EVENT_TRACE_PROPERTIES

PAYLOAD_FILTER_PREDICATE

StartTrace

TdhAggregatePayloadFilters

TdhCreatePayloadFilter

Aktualisieren einer Ereignisablaufverfolgungssitzung