KdPrintEx 巨集 (wdm.h)
如果符合您指定的條件,KdPrintEx 巨集 會將字串傳送至核心調試程式。
呼叫 KdPrintEx 需要雙括弧。
語法
void KdPrintEx(
_x_
);
參數
_x_
指定格式字串的自變數,如 printf 中所示。
傳回值
沒有
言論
KdPrintEx 與針對偵錯組態編譯的程式代碼中的 DbgPrintEx 例程相同。 此例程在針對發行組建編譯的程式代碼中沒有任何作用。 只有內核模式驅動程式可以呼叫 KdPrintEx 例程。
KdPrintEx 會將指定的字串傳遞至核心調試程式,或完全不執行任何動作,視 ComponentId、Level和對應的元件篩選遮罩的值而定。 如需詳細資訊,請參閱 讀取和篩選偵錯訊息。
除非絕對必要,否則您不應該從使用者輸入或其他進程取得字串,並將它傳遞至 KdPrintEx。 如果您使用未建立的字串,您必須確認這是有效的格式字串,而且格式代碼符合類型和數量中的自變數清單。 最佳編碼作法是讓所有 Format 字串在編譯時期為靜態和定義。
Format 字串的大小或自變數數目沒有上限。 不過,任何對 KdPrintEx 的單一呼叫只會傳輸 512 個字節的資訊。 DbgPrint 緩衝區的大小也有限制。 如需詳細資訊,請參閱 DbgPrint 緩衝區和調試程式。
此例程定義於 ntddk.h 和 ndis.h;元件篩選標識碼定義於 dpfilter.h、ndis.h 和 wdm.h 中。 包含 ntddk.h 或 ndis.h。
以下是自變數:
ComponentId [in]
指定呼叫這個例程的元件。 這必須是 dpfilter.h 頭檔中定義的其中一個元件名稱篩選標識碼。 若要避免將驅動程序的輸出與 Windows 元件的輸出混合,您應該只針對 ComponentId使用下列值:
DPFLTR_IHVVIDEO_ID
DPFLTR_IHVAUDIO_ID
DPFLTR_IHVNETWORK_ID
DPFLTR_IHVSTREAMING_ID
DPFLTR_IHVBUS_ID
DPFLTR_IHVDRIVER_ID
格式 [in]
指定要列印之格式字串的指標。 Format 字串支援大部分 printf樣式 格式規格字段。 不過,Unicode 格式代碼(%C、%S、%lc、%ls、%wc、%ws和 %wZ)只能與 IRQL = PASSIVE_LEVEL搭配使用。 KdPrintEx 例程不支援任何浮點類型(%f、%e、%E、%g、%G、%a或 %A)。
層級 [in]
指定此訊息的嚴重性。 這可以是任何 32 位整數。 介於 0 和 31 之間的值會以不同於 32 和 0xFFFFFFFF之間的值。 如需詳細資訊,請參閱 讀取和篩選偵錯訊息。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 可在 Windows XP 和更新版本中Microsoft使用。 |
目標平臺 | 桌面 |
標頭 | wdm.h (包括 Wdm.h) |
連結庫 | NtosKrnl.lib (請參閱 DbgPrintEx.) |
DLL | NtosKrnl.exe |