次の方法で共有


フレームワークベースのドライバーでの 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 ソフトウェア トレースが使用されています。