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

四個 BugCheckParameterX 值會提供其他資訊,例如發生記憶體損毀錯誤的地址和數據,視 BugCheckCode 的值而定。

傳回值

備註

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

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

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

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

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

規格需求

需求
最低支援的用戶端 適用於 Windows 2000 和更新版本的 Windows。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL 任何層級

另請參閱

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheck

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback