ドライバーのイベント トレーシングについて

定義されたイベントトレース

Windows イベントトレーシング (ETW) は、ユーザーモードアプリケーションやカーネルモードドライバーによって発生するイベントをトレースおよびログ記録するための効率的で効果的なメカニズムです。 ETW は、次の3つのコンポーネントで構成されます。

項目 説明

プロバイダー

イベントトレースのインストルメンテーションを発生させるアプリケーションまたはコンポーネント。

Controllers

イベントトレースセッションを開始、停止、および構成するアプリケーション。

コンシューマー

イベントトレースセッションを (リアルタイムで) またはファイルから受け取るアプリケーション。

ETW Kernel-Mode API

ETW アプリケーションプログラミングインターフェイス (API) には、カーネルモードのコンポーネントとドライバーで使用できる一連の関数が用意されています。 WMI イベントトレーシングWPP ソフトウェアトレース はどちらも ETW を使用します。 ドライバー開発者は、これらの関数を使用して、ドライバーを ETW プロバイダーとして登録できます。 etw プロバイダーはイベントを発生させることができ、イベントを Windows イベントログに発行したり、イベントを ETW セッションに書き込んだりできます。 etw セッションは、トレースファイルに書き込まれるか、リアルタイムコンシューマーに配信されます。 イベントは、システム内での興味深い出現を記述するエンティティであり、ETW プロバイダーによって決定される一連の属性によって定義されます。

ETW は Windows オペレーティングシステムに実装されており、開発者は、パフォーマンスにほとんど影響を与えることなく、高速で信頼性が高く、汎用性のある一連のイベントトレース機能を提供します。 コンピューターを再起動したり、アプリケーションやドライバーを再読み込みしたりせずに、トレースを動的に有効または無効にすることができます。 開発時にコードに追加するデバッグステートメントとは異なり、ETW を実稼働コードで使用できます。

イベントトレースを使用する場合

開発時に必要となる可能性のある詳細なトレースに加えて、管理、操作、および分析イベントに関連するアプリケーションで使用できるイベントを公開する場合は、ETW カーネルモード API を使用します。 主に開発およびデバッグのためにトレースデータを収集する場合は、WPP ソフトウェアトレースを使用します。