フレームワークベースのドライバーでの WPP ソフトウェア トレースの使用
WPP ソフトウェア トレースを使用すると、ドライバーのデバッグに役立つトレース メッセージを追加できます。また、フレームワークのイベント ロガーにも、表示できるトレース メッセージが数多く用意されています。
トレース メッセージを表示するには、TraceView または Tracelog を使用します。トレース メッセージをカーネル デバッガーに送信することもできます。
ドライバーへのトレース メッセージの追加
フレームワークベースのドライバーにトレース メッセージを追加するには、次の操作を行う必要があります。
ドライバーのソース ファイルのうち、WPP マクロを含む各ファイルに、#include ディレクティブを追加します。このディレクティブでは、トレース メッセージ ヘッダー (TMH) ファイルを識別する必要があります。ファイル名は、<ドライバーのソース ファイル名>.tmh の形式で指定する必要があります。
たとえば、ドライバーが MyDriver1.c および MyDriver2.c という 2 つのソース ファイルで構成されている場合、MyDriver1.c では次のように指定する必要があります。
#include "MyDriver1.tmh"
MyDriver2.c では次のように指定する必要があります。
#include "MyDriver2.tmh"
ビルド ユーティリティを実行すると、WPP プリプロセッサによって .tmh ファイルが生成されます。
ヘッダー ファイルで WPP_CONTROL_GUIDS マクロを定義します。このマクロは、ドライバーのトレース メッセージの GUID とトレース フラグを定義します。
ドライバーの DriverEntry ルーチンに WPP_INIT_TRACING マクロを追加します。このマクロは、ドライバーでソフトウェア トレースをアクティブ化します。
ドライバーの EvtDriverUnload コールバック関数に WPP_CLEANUP マクロを追加します。このマクロは、ドライバーでソフトウェア トレースを非アクティブ化します。
ドライバーで DoTraceMessage マクロ、またはこのマクロのカスタマイズ バージョンを使用して、トレース メッセージを作成します。
ドライバーの Source ファイルに RUN_WPP ディレクティブを追加します。このディレクティブは、ドライバーで WPP プリプロセッサを実行するようビルド ユーティリティに指示します。
RUN_WPP ディレクティブの引数に gen オプションを追加して、フレームワークの WPP テンプレート ファイルを指定する必要があります。サンプル ドライバーの Sources ファイルから引用した RUN_WPP ディレクティブの例を次に示します。
RUN_WPP = $(SOURCES) \ -km \ -func:TraceEvents(LEVEL,FLAGS,MSG,...) \ -gen:{km-WdfDefault.tpl}*.tmh
Windows Driver Model (WDM) のドライバーとは異なり、フレームワークベースのドライバーでは、WPP トレースを有効化する方法が、Windows 2000 システムと Windows XP 以降のシステムで異なることはありません。
ドライバーにトレース メッセージを追加する方法の詳細については、「ドライバーへの WPP マクロの追加」(英語の可能性あり) を参照してください。
WPP ソフトウェア トレースを使用するサンプル ドライバー
AMCC5933、NONPNP、OSRUSBFX2、PCIDRV、PLX9x5x、および Serial の各サンプル ドライバーで、WPP ソフトウェア トレースが使用されています。