Konfigurieren und Starten einer SystemTraceProvider-Sitzung

SystemTraceProvider ist ein Kernelanbieter mit vordefinierten Kernelereignissen, die unter Windows 7, Windows Server 2008 R2 und höher unterstützt werden. Unter Windows 7 und Windows Server 2008 R2 konnte systemTraceProvider nur für die NT-Kernelprotokollierungssitzung verwendet werden.

Auf Windows 8, Windows Server 2012 und höher kann der SystemTraceProvider für bis zu 8 Protokollierungssitzungen multiplexiert werden. Die ersten beiden Slots für Protokollierungssitzungen sind für die NT-Kernelprotokollierung und die Zirkelkernkontextprotokollierung reserviert.

Weitere Informationen zur Verwendung der NT-Kernelprotokollierungssitzung als Ablaufverfolgungsanbieter finden Sie unter Konfigurieren und Starten der NT-Kernelprotokollierungssitzung.

Ab Windows 10 SDK-Build 20348 und höher kann der SystemTraceProvider über separate Systemanbieter konfiguriert werden, die mit EnableTraceEx2 wie standardmäßige Ereignisablaufverfolgung für Windows-Ereignisanbieter gesteuert werden können. Eine vollständige Liste mit Systemanbietern, Schlüsselwörtern und entsprechenden Legacyflags und Gruppen finden Sie unter Systemanbieter.

Aktivieren einer SystemTraceProvider-Sitzung

Führen Sie den folgenden Befehl aus, um dem SystemTraceProvider das Starten einer anderen Sitzung als der NT-Kernelprotokollierung zu ermöglichen:

tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH

Führen Sie die folgenden Schritte aus, um systemTraceProvider programmgesteuert zu aktivieren, um eine andere Sitzung als die NT-Kernelprotokollierung zu starten.

  • Definieren Sie einen privaten Protokollierungsnamen.

    #define PRIVATE_LOGGER_NAME L"Some Private Trace Session"

  • Legen Sie auf dem Controller die folgenden Member der EVENT_TRACE_PROPERTIES-Struktur fest.

    Legen Sie LogFileMode auf EVENT_TRACE_SYSTEM_LOGGER_MODE fest.

    Legen Sie LoggerName auf private Protokollierung statt auf KERNEL_LOGGER_NAME fest.

    Stellen Sie sicher, dass das Wnode.Guid-Element der EVENT_TRACE_PROPERTIES-Struktur nicht auf SystemTraceControlGuid festgelegt ist. Sie müssen diesem Member eine neue GUID zuweisen.

  • Legen Sie auf dem Consumer den LoggerName-Member der EVENT_TRACE_LOGFILE-Struktur auf diese private Protokollierung fest.

Hinweis

Wenn Sie möchten, dass ein Nichtadministrator oder ein Nicht-TCB-Prozess eine Profilerstellungsablaufverfolgungssitzung mit dem SystemTraceProvider im Namen von Drittanbieteranwendungen starten kann, müssen Sie dem Benutzerprofil Berechtigungen erteilen und diesen Benutzer dann sowohl der Sitzungs-GUID (erstellt für die Protokollierungssitzung) als auch der GUID des Systemablaufverfolgungsanbieters hinzufügen, um den Systemablaufverfolgungsanbieter zu aktivieren. Weitere Informationen finden Sie in der EventAccessControl-Funktion .

 

Konfigurieren und Starten einer privaten Protokollierungssitzung

Konfigurieren und Starten einer AutoLogger-Sitzung

Konfigurieren und Starten einer Ereignisablaufverfolgungssitzung

Konfigurieren und Starten der NT-Kernelprotokollierungssitzung

Systemanbieter

Aktualisieren einer Ereignisablaufverfolgungssitzung