KdPrintEx マクロ (wdm.h)
KdPrintEx マクロは、指定した条件が満たされた場合に、カーネル デバッガーに文字列を送信します。
KdPrintEx 呼び出すには、二重かっこが必要です。
構文
void KdPrintEx(
_x_
);
パラメーター
_x_
printf のように、書式指定文字列の引数指定します。
戻り値
何一つ
備考
KdPrintEx は、デバッグ構成用にコンパイルされるコード内の DbgPrintEx ルーチンと同じです。 このルーチンは、リリース ビルド用にコンパイルされるコードには影響しません。 KdPrintEx ルーチンを呼び出すことができるのはカーネル モード ドライバーだけです。
KdPrintEx は、指定した文字列をカーネル デバッガーに渡すか、ComponentId、Level、および対応するコンポーネント フィルター マスクに応じて何も行いません。 詳細については、「メッセージ の読み取りとフィルター処理の」を参照してください。
絶対に必要でない限り、ユーザー入力または別のプロセスから文字列を取得して、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 |
関連項目
KdPrint を する