EngBugCheckEx 函数 (winddi.h)

当调用方发现不可恢复的错误时, EngBugCheckEx 函数会以受控的方式关闭系统,如果调用方继续运行,该错误会损坏系统。

语法

ENGAPI VOID EngBugCheckEx(
  [in] ULONG     BugCheckCode,
  [in] ULONG_PTR P1,
  [in] ULONG_PTR P2,
  [in] ULONG_PTR P3,
  [in] ULONG_PTR P4
);

参数

[in] BugCheckCode

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

[in] P1

指向提供其他信息的值的指针,例如发生内存损坏错误的地址和数据。 该值取决于 BugCheckCode 参数的值。

[in] P2

指向提供其他信息的值的指针,例如发生内存损坏错误的地址和数据。 该值取决于 BugCheckCode 参数的值。

[in] P3

指向提供其他信息的值的指针,例如发生内存损坏错误的地址和数据。 该值取决于 BugCheckCode 参数的值。

[in] P4

指向提供其他信息的值的指针,例如发生内存损坏错误的地址和数据。 该值取决于 BugCheckCode 参数的值。

返回值

备注

bug 检查是系统检测到的错误,导致系统立即受控关闭。 当图形驱动程序发现不可恢复的错误时,它应生成 bug 检查。

图形驱动程序应仅在出现可能损坏系统的严重、无法恢复的错误时调用 EngBugCheckEx。 如果可能,所有图形驱动程序都应记录错误并继续运行。 例如,如果驱动程序无法分配所需的资源,它应记录错误,以便系统继续运行;它不得检查生成 bug。

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

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

要求

要求
最低受支持的客户端 此函数在 Microsoft Windows Server 2003 及更高版本中可用。
目标平台 通用
标头 winddi.h (包括 Winddi.h)
Library Win32k.lib
DLL Win32k.sys