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

イベント トレースの定義

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 ソフトウェア トレースを使用します。