次の方法で共有


デバッガーへの出力の送信

ユーザー モードとカーネル モードのコードでは、デバッガーに出力を送信するために異なるルーチンを使用します。

User-Mode 出力ルーチン

OutputDebugString ルーチンは、呼び出し元プロセスのデバッガーに null で終わる文字列を送信します。 ユーザー モード ドライバーでは、 OutputDebugString はデバッガー コマンド ウィンドウに文字列を表示します。 デバッガーが実行されていない場合、このルーチンは無効です。 OutputDebugString、printf 形式の文字列の変数引数をサポートしていません。

このルーチンのプロトタイプは次のとおりです。

VOID OutputDebugString(
   LPCTSTR lpOutputString
   );

このルーチンの完全なドキュメントについては、「 デバッガーとの通信」を参照してください。

Kernel-Mode 出力ルーチン

DbgPrint ルーチンは、デバッガー ウィンドウに出力を表示します。 このルーチンは、基本的な printf 形式パラメーターをサポートします。 カーネル モード ドライバーのみが DbgPrint を呼び出すことができます。

DbgPrintEx ルーチンは DbgPrint に似ていますが、メッセージに "タグ付け" することができます。 デバッガーを実行するときに、特定のタグを持つメッセージのみを送信することを許可できます。 これにより、関心のあるメッセージのみを表示できます。 詳細については、「デバッグメッセージの読み取りとフィルタリング」を参照してください。

KdPrint マクロと KdPrintEx マクロは、チェックされたビルド環境でコンパイルされるときに、それぞれ DbgPrint および DbgPrintEx と同じです。 無料のビルド環境でコンパイルしても、効果はありません。