次の方法で共有


KdPrintEx マクロ (wdm.h)

KdPrintEx マクロは、指定した条件が満たされた場合に、カーネル デバッガーに文字列を送信します。

KdPrintEx 呼び出すには、二重かっこが必要です。

構文

void KdPrintEx(
   _x_
);

パラメーター

_x_

printfのように、書式指定文字列の引数 指定します。

戻り値

何一つ

備考

KdPrintEx は、デバッグ構成用にコンパイルされるコード内の DbgPrintEx ルーチンと同じです。 このルーチンは、リリース ビルド用にコンパイルされるコードには影響しません。 KdPrintEx ルーチンを呼び出すことができるのはカーネル モード ドライバーだけです。

KdPrintEx は、指定した文字列をカーネル デバッガーに渡すか、ComponentIdLevel、および対応するコンポーネント フィルター マスクに応じて何も行いません。 詳細については、「メッセージの読み取りとフィルター処理の 」を参照してください。

絶対に必要でない限り、ユーザー入力または別のプロセスから文字列を取得して、KdPrintEx渡すべきではありません。 作成しなかった文字列を使用する場合は、これが有効な書式指定文字列であること、および書式コードが型と数量の引数リストと一致することを確認する必要があります。 最適なコーディング方法は、すべての Format 文字列を静的にし、コンパイル時に定義することです。

Format 文字列のサイズや引数の数に上限はありません。 ただし、KdPrintEx 1 回の呼び出しでは、512 バイトの情報のみが送信されます。 DbgPrint バッファーのサイズにも制限があります。 詳細については、DbgPrint バッファーとデバッガーを参照してください。

このルーチンは ntddk.h および ndis.h で定義されています。コンポーネント フィルター ID は、dpfilter.h、ndis.h、wdm.h で定義されます。 ntddk.h または ndis.h を含めます。

引数を次に示します。

  • ComponentId [in]

    このルーチンを呼び出すコンポーネントを指定します。 これは、dpfilter.h ヘッダー ファイルで定義されているコンポーネント名フィルター ID のいずれかである必要があります。 ドライバーの出力と Windows コンポーネントの出力が混在しないようにするには、ComponentIdに次の値のみを使用する必要があります。

    • DPFLTR_IHVVIDEO_ID

    • DPFLTR_IHVAUDIO_ID

    • DPFLTR_IHVNETWORK_ID

    • DPFLTR_IHVSTREAMING_ID

    • DPFLTR_IHVBUS_ID

    • DPFLTR_IHVDRIVER_ID

  • 書式 [in]

    印刷する書式指定文字列へのポインターを指定します。 Format 文字列は、printf-style 書式指定フィールドの大部分をサポートします。 ただし、Unicode 形式コード (%C%S%lc%ls%wc%ws、および %wZ) は、IRQL = PASSIVE_LEVELでのみ使用できます。 KdPrintEx ルーチンは、浮動小数点型 (%f%e%E%g%G%a、または %A) をサポートしていません。

  • レベル [入力]

    このメッセージの重大度を指定します。 任意の 32 ビット整数を指定できます。 0 ~ 31 (含む) の値は、32 ~ 0xFFFFFFFFの値とは異なる方法で処理されます。 詳細については、「メッセージの読み取りとフィルター処理の 」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Microsoft Windows XP 以降で使用できます。
ターゲット プラットフォーム の デスクトップ
ヘッダー wdm.h (Wdm.h を含む)
ライブラリ NtosKrnl.lib (DbgPrintEx を参照)。
DLL NtosKrnl.exe

関連項目

DbgPrint

DbgPrintEx

KdPrint を する