KdPrint 巨集 (wdm.h)
KdPrint 巨集會將訊息傳送至核心調試程式。
KdPrint 只有在您指定的條件套用時才傳送訊息。 下一節中的詳細資訊。
KdPrint 的呼叫需要雙括弧。
語法
void KdPrint(
[in] _x_
);
參數
[in] _x_
指定要列印之格式字串的指標。 Format 字串支援大部分 printf樣式 格式規格語法。 不過,Unicode 格式代碼(%C、%S、%lc、%ls、%wc、%ws和 %wZ)只能與 IRQL = PASSIVE_LEVEL搭配使用。 KdPrint 例程不支援任何浮點類型(%f、%e、%E、%g、%G、%a或 %A)。
傳回值
沒有
言論
KdPrint 與針對偵錯組態編譯的程式代碼中的 DbgPrint 例程相同。 如果針對發行組態進行編譯,此例程就沒有作用。 只有內核模式驅動程式可以呼叫 KdPrint 例程。
KdPrint 只有在適用特定條件時才會傳送訊息。 具體來說,它的行為就像使用 DEFAULT 元件 KdPrintEx,以及DPFLTR_INFO_LEVEL的訊息重要性層級。 換句話說,下列兩個函式呼叫完全相同:
KdPrint (( Format, arguments ))
KdPrintEx (( DPFLTR_DEFAULT_ID, DPFLTR_INFO_LEVEL, Format, arguments ))
如需訊息篩選、元件和訊息重要性層級的詳細資訊,請參閱 讀取和篩選偵錯訊息。
無論您使用的 Windows 版本為何,建議您使用 KdPrintEx,而不是 KdPrint,因為 KdPrintEx 可讓您控制訊息傳送的條件。
除非絕對必要,否則您不應該從使用者輸入或其他進程取得字串,並將它傳遞至 KdPrint。 如果您使用未建立的字串,您必須確認這是有效的格式字串,而且格式代碼符合類型和數量中的自變數清單。 最佳編碼作法是讓所有 Format 字串在編譯時期為靜態和定義。
Format 字串的大小或自變數數目沒有上限。 不過,任何單一呼叫 KdPrint 只會傳輸 512 個字節的資訊。 DbgPrint 緩衝區的大小也有限制。 如需詳細資訊,請參閱 DbgPrint 緩衝區和調試程式。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | wdm.h (包括 Wdm.h) |
連結庫 | NtosKrnl.lib (請參閱 DbgPrint.) |
DLL | NtosKrnl.exe |