Share via


Konfigurieren und Starten einer privaten Protokollierungssitzung

Eine private Ereignisablaufverfolgungssitzung ist eine Ereignisablaufverfolgungssitzung im Benutzermodus, die im gleichen Prozess wie ihre Ereignisablaufverfolgungsanbieter ausgeführt wird. Die private Sitzung und die aktivierten Anbieter müssen sich alle im selben Prozess befinden. Der Vorteil der Verwendung einer privaten Sitzung besteht darin, dass die private Sitzung nicht auf die maximal 64 gleichzeitig ausgeführten Ereignisablaufverfolgungssitzungen angerechnet wird.

Das Konfigurieren und Starten einer privaten Sitzung ähnelt dem Starten einer normalen Ereignisablaufverfolgungssitzung. Der Unterschied besteht darin, dass das Wnode.Guid-Element der EVENT_TRACE_PROPERTIES-Struktur die GUID des Anbieters und nicht die Sitzung enthalten muss und der Anbieter die GUID bereits registriert haben muss. Beachten Sie, dass Sie, wenn Sie auch den EVENT_TRACE_PRIVATE_IN_PROC Protokollierungsmodus festlegen, eine andere GUID für die Sitzung und den Anbieter verwenden können. Ausführliche Informationen zum Starten einer normalen Ereignisablaufverfolgungssitzung finden Sie unter Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung.

Beachten Sie, dass Sie eine private Ablaufverfolgungssitzung aus DllMain nicht starten, beenden oder leeren können. Sie sollten dies in den Initialisierungs- und Finalisierungsroutinen der DLL tun.

Von Windows 8.1 bis Windows 10, Version 1607, 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 .

Ab Windows 10 Version 1703 können Benutzer mit geringen Berechtigungen jetzt eine private Protokollierungssitzung in von ihnen gestarteten Prozessen starten. Der Anbieter muss nicht mehr registriert werden, bevor die private Sitzung aktiviert oder gestartet wird. Das bedeutet, dass der Anbieter "voraktiviert" ist, ähnlich wie bei nicht privaten Sitzungsanbietern. Es gibt ein Limit von 8 systemweiten privaten Protokollierungen für einen einzelnen Prozess. Für eine höhere Leistung in prozessübergreifenden Szenarien wird empfohlen, beim Starten einer systemweiten privaten Protokollierung die Filterung für Sitzungs-APIs (einschließlich ControlTrace, QueryTrace, StartTrace und StopTrace) zu verwenden. Beachten Sie, dass dieselben Filter an alle Sitzungs-APIs übergeben werden sollten. Weitere Informationen zu Filtern finden Sie unter EVENT_TRACE_PROPERTIES_V2.

Ausführliche Informationen zum Starten einer Ereignisablaufverfolgungssitzung finden Sie unter Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung.

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

Ausführliche Informationen zum Starten einer globalen Protokollierungssitzung finden Sie unter Konfigurieren und Starten einer globalen Protokollierungssitzung.

Ausführliche Informationen zum Starten einer AutoLogger-Sitzung finden Sie unter Konfigurieren und Starten einer AutoLogger-Sitzung.

Konfigurieren und Starten einer SystemTraceProvider-Sitzung

Konfigurieren und Starten einer AutoLogger-Sitzung

Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung

Konfigurieren und Starten der NT-Kernelprotokollierungssitzung

EnableTraceEx2

ENABLE_TRACE_PARAMETERS

EVENT_TRACE_PROPERTIES

EVENT_TRACE_PROPERTIES_V2

EVENT_FILTER_DESCRIPTOR

PAYLOAD_FILTER_PREDICATE

TdhAggregatePayloadFilters

TdhCreatePayloadFilter

Aktualisieren einer Ereignisablaufverfolgungssitzung