KeBugCheck 函数 (ntddk.h)

KeBugCheck 例程在调用方发现无法恢复的不一致(如果调用方继续运行时)会以受控的方式关闭系统。

语法

void KeBugCheck(
  [in] ULONG BugCheckCode
);

参数

[in] BugCheckCode

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

返回值

没有

言论

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

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

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

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

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

当 bug 检查不可避免时,大多数系统组件都会调用 KeBugCheckEx,这将提供有关此类不一致原因的详细信息,而不是 KeBugCheck

要求

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

另请参阅

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheckEx

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback