Neuerungen in der Ereignisablaufverfolgung
In diesem Abschnitt werden die neuen Features beschrieben, die der Ereignisablaufverfolgung für Windows in jeder Version hinzugefügt wurden.
Windows 10, Version 1709
ETW kann jetzt optional Binärdateien für alle Anbieter nachverfolgen, die für die Sitzung aktiviert sind. Die Nachverfolgung gilt rückwirkend für Anbieter, die vor dem Anruf für die Sitzung aktiviert wurden, sowie für alle zukünftigen Anbieter, die für die Sitzung aktiviert sind. Sie können jetzt auch die derzeit konfigurierte maximale Anzahl von Systemprotokollierungen abfragen, die vom Betriebssystem zulässig sind. Weitere Informationen finden Sie unter den TraceProviderBinaryTracking - und TraceMaxLoggersQuery-Werten der TRACE_INFO_CLASS-Enumeration sowie unter Abrufen zusätzlicher Ereignisablaufverfolgungsdaten.
ETW kann jetzt Ereignisse basierend auf dem Ereignisnamen filtern. Sie können auch bestimmen, welche Ereignisse ihre Stapel erfassen. Weitere Informationen finden Sie in den EVENT_FILTER_TYPE_EVENT_NAME-, EVENT_FILTER_TYPE_STACKWALK_NAME - und EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW-Werten der EVENT_FILTER_DESCRIPTOR-Struktur sowie unter den zugeordneten EVENT_FILTER_EVENT_NAME - und EVENT_FILTER_LEVEL_KW strukturen.
Windows 10
TraceLogging basiert auf ETW und bietet eine vereinfachte Möglichkeit, Code für native .NET- und WinRT-Entwickler zu instrumentieren. TraceLogging ermöglicht es Ihnen, strukturierte Daten mit Ereignissen einzuschließen, Ereignisse zu korrelieren und erfordert keine separate XML-Datei für das Instrumentierungsmanifest.
Anbietermerkmale wurden hinzugefügt, um mehr Daten an eine einzelne Anbieterregistrierung anzufügen. Sie können für manifestbasierte oder TraceLogging-Anbieter verwendet werden. Dies umfasst derzeit unterstützung für das Hinzufügen eines Anbieternamens und/oder einer Anbietergruppe zu einer einzelnen Anbieterregistrierung. Anbietergruppen sind ein neues Feature, mit dem mehrere ETW-Anbieter von der Gruppe, zu der sie gehören, aggregiert gesteuert werden können.
Der regelmäßige Erfassungszustand ist eine Möglichkeit, aufzeichnungszustandsbenachrichtigungen routinemäßig an Anbieter zu senden. Wenn dies aktiviert ist, werden Benachrichtigungen nur an Anbieterregistrierungen gesendet, die zuvor für die aktuelle Sitzung aktiviert wurden. Jeder Anbieter kann seine eigene Antwort (sofern vorhanden) auf eine Benachrichtigung definieren. Details zur Implementierung finden Sie unter TRACE_PERIODIC_CAPTURE_STATE_INFO.
Windows 8.1 und Windows Server 2012 R2
Die folgenden Features wurden der Ereignisablaufverfolgung auf Windows 8.1 und Windows Server 2012 R2 hinzugefügt.
Funktionen, die die Verwendung von Ereignisnutzlast-, Bereichs- und Stapellauffiltern unterstützen, die 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 finden Sie unter
- TdhAggregatePayloadFilters
- TdhCleanupPayloadEventFilterDescriptor
- TdhCreatePayloadFilter
- TdhDeletePayloadFilter
Weitere Informationen finden Sie in der umfassend überarbeiteten Dokumentation für die EnableTraceEx2-Funktion und die ENABLE_TRACE_PARAMETERS - und EVENT_FILTER_DESCRIPTOR-Strukturen , die von diesen Features verwendet werden.
Eine Struktur, die ein Prädikat für Ereignisnutzlastfilter definiert, das beschreibt, wie nach einem einzelnen Feld in einer Ablaufverfolgungssitzung gefiltert wird, die von der neuen TdhCreatePayloadFilter-Funktion und einer neuen Struktur verwendet wird, die von Ereignis-ID- und Stapellauffiltern verwendet wird. Weitere Informationen finden Sie unter
Funktionen, die Informationen zu Ereignissen abrufen, die im Anbietermanifest vorhanden sind. Weitere Informationen finden Sie unter
Eine Struktur, die ein Array von Ereignissen in einem Anbietermanifest definiert, das von der neuen TdhEnumerateManifestProviderEvents-Funktion verwendet wird. Weitere Informationen finden Sie unter
Windows 8 und Windows Server 2012
Die folgenden Features wurden der Ereignisablaufverfolgung auf Windows 8 und Windows Server 2012 hinzugefügt.
Funktionen, die Vorgänge für ein Registrierungsobjekt ausführen, die Analyse von Ereignisnutzlasten bereitstellen, das Durchsuchen von Ablaufverfolgungsanbietern bereitstellen, Sitzungseinstellungen für die Ereignisablaufverfolgung abfragen und eine neu protokollierte Ablaufverfolgungsdatei verarbeiten. Weitere Informationen finden Sie unter
- EventSetInformation
- TdhCloseDecodingHandle
- TdhGetDecodingParameter
- TdhGetWppProperty
- TdhGetWppMessage
- TdhLoadManifestFromBinary
- TdhOpenDecodingHandle
- TdhSetDecodingParameter
- TraceQueryInformation
Schnittstellen, die Der Neuprotokollierung Informationen über den Ablaufverfolgungsprozess und den Zeitpunkt der Protokollierung von Ereignissen, Zugriff auf Daten für ein bestimmtes Ereignis und Zugriff auf Neuprotokollierungsfeatures bereitstellen, die die Bearbeitung von ETL-Dateien (Event Trace Log) ermöglichen. Weitere Informationen finden Sie unter
Zusätzliche Enumerationen, die von den neuen Funktionen und Schnittstellen verwendet werden. Weitere Informationen finden Sie unter
Windows 7 und Windows Server 2008 R2
Die folgenden Features wurden in dieser Version hinzugefügt:
- Die Möglichkeit für Anbieter, Filter im Manifest zu definieren. In Windows Vista können Controller Filterdaten an den Anbieter übergeben. Das Layout der Filterdaten wurde jedoch nicht im Manifest definiert, sodass der Anbieter andere Mittel verwenden musste, um die Filterdefinition für Controller bereitzustellen. Mit dieser Version können Anbieter die Filterdefinition im Manifest definieren ( siehe filter-Attribut des komplexen ProviderType-Typs ). Controller können dann die TdhEnumerateProviderFilters-Funktion verwenden, um die Filterdefinition zu bestimmen. Anbieter, die Filter verwenden, sollten die EventWriteEx-Funktion verwenden, um das Ereignis zu schreiben.
- Die Möglichkeit, einen einzelnen Puffer zum Sammeln von Ereignissen zu verwenden, die auf mehreren Prozessoren generiert werden. Die Verwendung eines einzelnen Puffers verhindert, dass Ereignisse auf Computern mit mehreren Prozessoren nicht in der richtigen Reihenfolge angezeigt werden. Ausführliche Informationen finden Sie unter EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING Protokollierungsmodus. Standardmäßig verwendet ETW Puffer pro Prozessor.
- Die Möglichkeit, eine Stapelüberwachung für Ereignisse zu erfassen. Informationen zum Aktivieren der Stapelablaufverfolgung für Kernelereignisse finden Sie in der TraceSetInformation-Funktion . Informationen zum Aktivieren der Stapelablaufverfolgung für Benutzerereignisse finden Sie im EVENT_ENABLE_PROPERTY_STACK_TRACE-Flag für das EnableProperty-Element von ENABLE_TRACE_PARAMETERS.
- Die Möglichkeit zum Angeben des EVENT_TRACE_BUFFERING_MODE oder EVENT_TRACE_FILE_MODE_NEWFILE Protokollierungsmodus mit dem EVENT_TRACE_PRIVATE_LOGGER_MODEProtokollierungsmodus (siehe Protokollierungsmoduskonstanten).
- Die Möglichkeit, einen Anbieter synchron zu aktivieren. Standardmäßig sind Anbieter asynchron aktiviert. Um einen Anbieter synchron zu aktivieren, legen Sie den Timeout-Parameter von EnableTraceEx2 fest.
- Die Möglichkeit für den Controller, anzufordern, dass der Anbieter seinen Zustand protokolliert. Ausführliche Informationen finden Sie im EVENT_CONTROL_CODE_CAPTURE_STATE-Flag für den ControlCode-Parameter von EnableTraceEx2.
- Die Möglichkeit für Consumer, Ereignisdaten mithilfe der TdhFormatProperty-Funktion zu formatieren.
- Die Möglichkeit, manifestierte Ereignisse auf Computern zu decodieren, die den Anbieter nicht enthalten. Weitere Informationen finden Sie in der TdhLoadManifest-Funktion .
In dieser Version wurden die folgenden Funktionen hinzugefügt:
- EnableTraceEx2
- EventWriteEx
- TdhEnumerateProviderFilters
- TdhFormatProperty
- TdhLoadManifest
- TdhUnloadManifest
- TraceSetInformation
Die folgenden Strukturen wurden in dieser Version hinzugefügt:
- CLASSIC_EVENT_ID
- ENABLE_TRACE_PARAMETERS
- EVENT_EXTENDED_ITEM_STACK_TRACE32
- EVENT_EXTENDED_ITEM_STACK_TRACE64
- EVENT_FILTER_HEADER
- PROVIDER_FILTER_INFO
Die folgenden Enumerationen wurden in diesem Release hinzugefügt:
In diesem Release wurden die folgenden MOF-Klassen hinzugefügt: