KeBugCheck 函式 (ntddk.h)

當呼叫端發現無法復原的不一致狀況時, KeBugCheck 例程會以受控制的方式關閉系統,當呼叫端繼續執行時,就會損毀系統。

語法

void KeBugCheck(
  [in] ULONG BugCheckCode
);

參數

[in] BugCheckCode

指定值,指出錯誤檢查的原因。

傳回值

備註

錯誤檢查是系統偵測到的錯誤,導致系統立即關機。 各種核心模式元件會執行運行時間一致性檢查。 當這類元件發現無法復原的不一致時,會導致產生錯誤檢查。

可能的話,所有內核模式元件都應該記錄錯誤並繼續執行,而不是呼叫 KeBugCheck。 例如,如果驅動程式無法配置所需的資源,它應該會記錄錯誤,讓系統繼續執行;它不得產生錯誤檢查。

驅動程式或其他內核模式元件應該只在嚴重、無法復原的錯誤可能損毀系統本身的情況下,才呼叫此例程。

KeBugCheck 在開發驅動程式的早期階段,或在進行測試時很有用。 在這些情況下,傳遞給此例程的 BugCheckCode 應該與 Windows 或其驅動程式已在使用的程式代碼不同。 如需這些程式代碼的清單,請參閱 錯誤檢查代碼

不過,即使在驅動程式開發期間,此例程只是有限的公用程式,因為它會導致完整的系統關機。 更有效率的偵錯方法是將核心調試程式附加至系統,然後使用將訊息傳送至調試程式或中斷調試程式的例程。 如需詳細資訊,請參閱 在驅動程式中使用偵錯程序代碼

當錯誤檢查無法避免時,大部分的系統元件都會呼叫 KeBugCheckEx,以提供比 KeBugCheck這類不一致原因的詳細資訊。

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 ntddk.h (包含 Ntddk.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL 任何層級

另請參閱

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheckEx

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback