KeBugCheck 函数 (ntddk.h)

当调用方发现不可恢复的不一致时, KeBugCheck 例程会以受控的方式关闭系统,如果调用方继续运行,该不一致会损坏系统。

语法

void KeBugCheck(
  [in] ULONG BugCheckCode
);

参数

[in] BugCheckCode

指定一个值,该值指示 bug 检查的原因。

返回值

备注

bug 检查是系统检测到的错误,导致系统立即受控关闭。 各种内核模式组件执行运行时一致性检查。 当此类组件发现不可恢复的不一致时,会导致生成 bug 检查。

如果可能,所有内核模式组件都应记录错误并继续运行,而不是调用 KeBugCheck。 例如,如果驱动程序无法分配所需的资源,它应记录错误,以便系统继续运行;它不得检查生成 bug。

驱动程序或其他内核模式组件应仅在出现可能损坏系统本身的致命、不可恢复的错误时调用此例程。

KeBugCheck 在开发驱动程序的早期阶段或正在进行测试时非常有用。 在这些情况下,传递给此例程的 BugCheckCode 应不同于 Windows 或其驱动程序已在使用的代码。 有关这些代码的列表,请参阅 Bug 检查代码

但是,即使在驱动程序开发期间,此例程也只是有限的效用,因为它会导致系统完全关闭。 更有效的调试方法是将内核调试器附加到系统,然后使用将消息发送到调试器或中断调试器的例程。 有关详细信息,请参阅 在驱动程序中使用调试代码

当 bug 检查不可避免时,大多数系统组件调用 KeBugCheckEx,它比 KeBugCheck 提供了有关此类不一致原因的详细信息。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别

另请参阅

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheckEx

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback