KeBugCheckEx 函式 (wdm.h)
當呼叫端發現無法復原的不一致時,KeBugCheckEx 例程會以受控制的方式關閉系統,如果呼叫端繼續執行,就會損毀系統。
語法
void KeBugCheckEx(
[in] ULONG BugCheckCode,
[in] ULONG_PTR BugCheckParameter1,
[in] ULONG_PTR BugCheckParameter2,
[in] ULONG_PTR BugCheckParameter3,
[in] ULONG_PTR BugCheckParameter4
);
參數
[in] BugCheckCode
指定值,指出錯誤檢查的原因。
[in] BugCheckParameter1
[in] BugCheckParameter2
[in] BugCheckParameter3
[in] BugCheckParameter4
四個
傳回值
沒有
言論
錯誤檢查是系統偵測到的錯誤,導致系統立即且受控制的關閉系統。 各種內核模式元件會執行運行時間一致性檢查。 當這類元件發現無法復原的不一致時,就會產生錯誤檢查。
可能的話,所有內核模式元件都應該記錄錯誤並繼續執行,而不是呼叫 KeBugCheckEx。 例如,如果驅動程式無法配置所需的資源,它應該記錄錯誤,讓系統繼續執行;它不得產生錯誤檢查。
驅動程式或其他內核模式元件應該只在嚴重且無法復原的錯誤的情況下呼叫此例程,而錯誤可能會損毀系統本身。
KeBugCheckEx 在開發驅動程式的早期階段,或在進行測試時很有用。 在這些情況下,傳遞給此例程 BugCheckCode 應該與 Windows 或其驅動程式已使用的程式代碼不同。 如需這些程式代碼的清單,請參閱 錯誤檢查碼。
不過,即使在驅動程式開發期間,此例程也只是有限的公用程式,因為它會導致完整的系統關機。 更有效率的偵錯方法是將核心調試程式附加至系統,然後使用將訊息傳送至調試程式或中斷調試程式的例程。 如需詳細資訊,請參閱 開始使用 WinDbg (核心模式)。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows 2000 和更新版本的 Windows。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何層級 |