ドライバーのイベント トレーシングについて
イベント トレースの定義
Event Tracing for Windows (ETW) は、ユーザー モード アプリケーションとカーネル モード ドライバーによって発生するイベントをトレースおよびログ記録するための効率的で効果的なメカニズムです。 ETW は、次の 3 つのコンポーネントで構成されます。
用語 | 説明 |
---|---|
プロバイダー |
イベント トレース インストルメンテーションを発生させるアプリケーションまたはコンポーネント。 |
コントローラー |
イベント トレース セッションを開始、停止、および構成するアプリケーション。 |
使用者 |
イベント トレース セッション (リアルタイム) またはファイルから受信するアプリケーション。 |
ETW カーネル モード API
ETW アプリケーション プログラミング インターフェイス (API) には、カーネル モードのコンポーネントとドライバーで使用できる関数のセットが用意されています。 WMI イベント トレース と WPP ソフトウェア トレース の両方で ETW が使用されます。 ドライバー開発者は、これらの関数を使用して、ETW プロバイダーとしてドライバーを登録できます。 ETW プロバイダーは、イベントを発生させ、それらを Windows イベント ログに発行したり、イベントを ETW セッションに書き込んだりできます。ETW セッションは、トレース ファイルに書き込まれるか、リアルタイム コンシューマーに配信されます。 イベントは、システム内の興味深い発生を記述するエンティティであり、ETW プロバイダーによって決定される一連の属性によって定義されます。
ETW は Windows オペレーティング システムに実装され、開発者はパフォーマンスにほとんど影響を与えなく、高速で信頼性が高く、汎用性の高い一連のイベント トレース機能を提供します。 コンピューターを再起動したり、アプリケーションやドライバーを再読み込みしたりすることなく、トレースを動的に有効または無効にすることができます。 開発中にコードに追加するデバッグ ステートメントとは異なり、運用コードでは ETW を使用できます。
Event Tracing を使用する状況
開発中に必要になる詳細なトレースに加えて、管理イベント、運用イベント、および分析イベントに関心のあるアプリケーションが使用できるイベントを発行する場合は、ETW カーネル モード API を使用します。 主に開発とデバッグの目的でトレース データを収集する場合は、WPP ソフトウェア トレースを使用します。