次のトピックでは、C/C++ TraceLogging API に関する情報を提供します。
手記
C/C++ コードからイベントを生成していて、コンパイル時にイベントが定義されている場合は、このセクションで説明する API を使用します。 それ以外の場合は、.NET コードからイベントを生成する場合は、.NET EventSource クラスを使用します。 それ以外の場合は、Windows ランタイム (WinRT) を使用している場合は、LoggingChannelを使用します。 それ以外の場合は、TraceLoggingDynamicなど、コミュニティでサポートされているオプションを使用できる場合があります。
TraceLogging は、Windows イベント トレーシング (ETW) 上に構築されており、マニフェスト ベースの ETW または WPP よりも簡単に使用できます。 TraceLogging を使用すると、構造化データを含むイベントを生成でき、ETW アクティビティを使用したイベントの関連付けをサポートし、デコードに個別のインストルメンテーション マニフェスト XML ファイルは必要ありません。
TraceLoggingProvider.h は、ユーザー モードまたはカーネル モードの C/C++ 開発者に推奨される API です。 次のリンクでは、C/C++ API について説明します。
WINVER (ユーザー モード) の値は TraceLoggingProvider.h の動作に影響します。
-
<windows.h>
を含める前に WINVER が設定されていない場合、<windows.h>
は WINVER を SDK バージョンに対応する既定値に設定します。 - WINVER を 0x0602 (Windows 8) 以降に設定して TraceLoggingProvider.h を使用すると、Windows Vista または Windows 7 でプログラムが実行されない可能性があります (TraceLoggingProvider.h は、Windows Vista または Windows 7 の RTM バージョンに存在しなかった EventSetInformation を直接使用しようとします)。
- WINVER を 0x0600 (Windows Vista) または 0x0601 (Windows 7) に設定して TraceLoggingProvider.h を使用する場合、プログラムは互換性のために構成され、指定されたバージョンの Windows で動作します (使用可能な場合、TraceLoggingProvider.h は GetProcAddress を介して EventSetInformation を呼び出します)。