TraceLogging-Referenz

Die folgenden Themen enthalten Informationen zur C/C++-TraceLogging-API.

Hinweis

Wenn Sie Ereignisse aus C/C++-Code generieren und die Ereignisse zur Kompilierzeit definiert werden, verwenden Sie die in diesem Abschnitt beschriebenen APIs. Wenn Sie andernfalls Ereignisse aus .NET-Code generieren, verwenden Sie die .NET EventSource-Klasse . Wenn Sie andernfalls Windows-Runtime (WinRT) verwenden, verwenden Sie LoggingChannel. Andernfalls können Sie möglicherweise eine von der Community unterstützte Option wie TraceLoggingDynamic verwenden.

TraceLogging basiert auf der Ereignisablaufverfolgung für Windows (ETW) und ist einfacher zu verwenden als manifestbasiertes ETW oder WPP. Mit TraceLogging können Sie Ereignisse generieren, die strukturierte Daten enthalten, die Ereigniskorrelation mithilfe von ETW-Aktivitäten unterstützen und keine separate XML-Datei für das Instrumentierungsmanifest benötigen.

TraceLoggingProvider.h ist die empfohlene API für C/C++-Entwickler im Benutzer- oder Kernelmodus. Die folgenden Links beschreiben die C/C++-API.

Beachten Sie, dass sich der Wert von WINVER (Benutzermodus) auf das Verhalten von TraceLoggingProvider.h auswirkt:

  • Wenn WINVER nicht vor dem <windows.h> Einschließen <windows.h>festgelegt ist, wird WINVER auf einen Standardwert festgelegt, der der SDK-Version entspricht.
  • Wenn Sie TraceLoggingProvider.h verwenden, wobei WINVER auf 0x0602 (Windows 8) oder höher festgelegt ist, wird das Programm möglicherweise nicht unter Windows Vista oder Windows 7 ausgeführt (TraceLoggingProvider.h versucht, die EventSetInformation direkt zu verwenden, die in RTM-Versionen von Windows Vista oder Windows 7 nicht vorhanden war).
  • Wenn Sie TraceLoggingProvider.h verwenden, wobei WINVER auf 0x0600 (Windows Vista) oder 0x0601 (Windows 7) festgelegt ist, wird das Programm aus Kompatibilitätsgründen konfiguriert und funktioniert mit den angegebenen Versionen von Windows (TraceLoggingProvider.h ruft EventSetInformation über GetProcAddress auf, falls verfügbar).