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