KMDF ドライバーでの WPP ソフトウェア トレースの使用
WPP ソフトウェア トレース を使用すると、ドライバーのデバッグに役立つトレース メッセージを追加できます。 さらに、フレームワークの イベント ロガー には、表示できる数百のトレース メッセージが用意されています。
TraceView または Tracelog を使用して、トレース メッセージを表示できます。 また、カーネル デバッガー にトレース メッセージを送信することもできます。
ドライバーへのトレース メッセージの追加
フレームワーク ベースのドライバーにトレース メッセージを追加するには、次の操作を行う必要があります。
WPP マクロのいずれかを含むドライバーの各ソース ファイルに #include ディレクティブを追加します。 このディレクティブは、トレース メッセージ ヘッダー (TMH) ファイルを識別する必要があります。 ファイル名の形式<driver-source-file-name>.tmh である必要があります。
たとえば、ドライバーが MyDriver1.c と MyDriver2.c という 2 つのソース ファイルで構成されている場合、MyDriver1.c には次のものが含まれている必要があります。
#include "MyDriver1.tmh"
さらに MyDriver2.c には次のものが含まれている必要があります。
#include "MyDriver2.tmh"
Microsoft Visual Studio でドライバーをビルドすると、WPP プリプロセッサが .tmh ファイルを生成します。
ヘッダー ファイルで WPP_CONTROL_GUIDS マクロを定義します。 このマクロは、ドライバーのトレース メッセージの GUID フラグと トレース フラグ を定義します。
ドライバーの DriverEntry ルーチンにWPP_INIT_TRACING マクロを含めます。 このマクロは、ドライバーのソフトウェア トレースをアクティブにします。
ドライバーの EvtDriverUnload コールバック関数に WPP_CLEANUP マクロを含めます。 このマクロは、ドライバーのソフトウェア トレースを無効にします。
トレース メッセージを作成するには、ドライバーで DoTraceMessage マクロまたはカスタマイズされたバージョンのマクロを使用します。
ドライバー プロジェクトのプロパティ ページを開きます。 ソリューション エクスプローラーで、ドライバー プロジェクトを右クリックし、 [プロパティ] を選択します。 ドライバーのプロパティ ページで、[構成プロパティ]、Wpp トレース の順にクリックします。 [全般] メニューの [WPP トレースの実行] を [はい] に設定します。 [ファイル オプション] メニューで、フレームワークの WPP テンプレート ファイルも指定する必要があります。次に例を示します。
{km-WdfDefault.tpl}*.tmh
Visual Studio でドライバー プロジェクトの追加の WPP トレース設定を指定するには、ソリューション エクスプローラーでドライバー プロジェクトを右クリックします。 次に、>構成プロパティ->-WPP トレース へのリンクに従います。
トレース構成ファイルを指定するには、[Scan Configuration Data]\(構成データのスキャン\) 設定を使用します。 複数のトレース構成ファイルの場合は、次のように [コマンド ライン] -> [追加オプション] の下に追加します。
-scan:"$(KMDF_INC_PATH)\$(KMDF_VER_PATH)\wdftraceenums.h"
ドライバーにトレース メッセージを追加する方法の詳細については、「ドライバーへの WPP マクロの追加」をご参照ください。
WPP ソフトウェア トレースを使用するサンプル ドライバー
AMCC5933、NONPNP、KMDF_FX2、PCIDRV、PLX9x5x、およびシリアル サンプル ドライバー では、WPP ソフトウェア トレースが使用されます。