Windows イベント

イベントは、通常、アプリケーションおよびドライバー ソフトウェアのトラブルシューティングに使用されます。

  • Windows Vista より前では、イベントをログに記録するために、Windows のイベント トレーシング (ETW) またはイベント ログを使用していました。
  • Windows Vista では、Windows イベント トレーシング (ETW) と Windows イベント ログ API の両方を統合した新しいイベント モデルが導入されました。
  • Windows 10では、ETW に基づいて構築された TraceLogging が導入され、ネイティブ、.NET、WinRT の開発者向けにコードをインストルメント化する簡単な方法が提供されます。

新しい TraceLogging モデルを使用すると、構造化データをイベントに含め、イベントを関連付け、個別のインストルメンテーション マニフェスト XML ファイルを必要としません。

Windows Vista モデルでは、XML マニフェストを使用して、発行するイベントを定義します。 イベントは、チャネルまたは ETW セッションに発行できます。 イベントは、次の種類のチャネルに発行できます:管理、運用、分析、デバッグ。 発行元を有効にするために ETW のみを使用する場合は、マニフェストでチャネルを指定する必要はありません。 マニフェストの記述の詳細については、「 インストルメンテーション マニフェストの記述」を参照してください。チャネルの詳細については、「 チャネルの定義」を参照してください。

イベントパブリッシャーを登録し、イベントを発行するには、ETW API を使用します。 詳細については、「 イベントの提供 」と「 プロバイダーの開発」を参照してください。 イベントパブリッシャーは、有効になっている場合、マニフェストで指定されたチャネルにイベントを自動的に書き込みます。

イベントパブリッシャーが発行するイベントを細分性の高いレベルで制御する場合は、ETW API を使用します。 たとえば、マニフェストで書き込みイベントと読み取りイベントの両方が定義されている場合は、書き込みイベントのみを有効にすることができます。 イベントでは、警告やエラーなどのレベル値を指定することもできます。そのため、エラー レベルを指定するイベントに書き込まれるイベントを制限できます。 詳細については、「 イベント トレース セッションの制御」を参照してください。 イベントはセッションのログ ファイルに書き込まれます。

イベントを使用するには、イベント チャネル、イベント ログ ファイル (.evtx または .evt ファイル)、トレース ファイル (.etl ファイル)、またはリアルタイム ETW セッションからイベントを取得する必要があります。 ETW トレース ファイルまたはリアルタイム ETW セッションからのイベントを使用するには、ETW のトレース データ ヘルパー (TDH) 関数を使用してイベントを使用します。 TDH を使用してイベント メタデータを読み取ることもできます。 詳細については、「 イベントの使用」を参照してください。 イベント チャネルまたはイベント ログ ファイルからイベントを使用するには、Windows イベント ログ関数を使用してイベントのクエリまたはサブスクライブを行います。 詳細については、「イベントのクエリ」または「イベントのサブスクライブ」を参照してください。

Windows Vista より前のバージョンでは、 Windows イベント トレース または イベント ログ を使用してイベントを発行および使用する必要があります。