KeRegisterBugCheckReasonCallback 函数 (wdm.h)

KeRegisterBugCheckReasonCallback 函数注册一个回调例程,该例程在操作系统发出 bug 检查时执行。

语法

BOOLEAN KeRegisterBugCheckReasonCallback(
  [out] PKBUGCHECK_REASON_CALLBACK_RECORD  CallbackRecord,
  [in]  PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
  [in]  KBUGCHECK_CALLBACK_REASON          Reason,
  [in]  PUCHAR                             Component
);

参数

[out] CallbackRecord

指向 KBUGCHECK_REASON_CALLBACK_RECORD 结构的指针,该结构是通过调用 Windows 内核宏中所述的 KeInitializeCallbackRecord 例程初始化的。

[in] CallbackRoutine

指向要注册 KBUGCHECK_REASON_CALLBACK_ROUTINE 类型的回调例程的指针。 有关如何实现此回调例程的信息,请参阅 编写 Bug 检查回调例程

[in] Reason

KBUGCHECK_CALLBACK_REASON 类型的枚举,指定 CallbackRoutine 指向的回调例程的类型。

[in] Component

指向以 null 结尾的 ANSI 字符串的指针,该字符串标识调用方。 例如,可以选择描述设备驱动程序或包含设备名称的字符串。 可以使用 !bugdump 调试器扩展显示与此字符串关联的故障转储数据。

返回值

如果成功注册回调例程,则 KeRegisterBugCheckReasonCallback 返回 TRUE;否则返回 FALSE

注解

驱动程序可以使用 KeRegisterBugCheckReasonCallback 注册在系统 bug 检查期间执行的例程。

有关每种类型的回调的说明,请参阅 KBUGCHECK_CALLBACK_REASON

驱动程序可以使用 KeDeregisterBugCheckReasonCallback 例程来删除回调注册检查 bug。 任何可以卸载的驱动程序都必须在其 Unload 例程中删除其所有回调的注册。

有关如何实现这些回调例程的信息,请参阅 编写 Bug 检查回调例程

若要显示辅助转储数据,可以在调试器扩展中使用 IDebugDataSpaces3::ReadTagged** 方法。 另一个选项是调试 bug 检查回调例程本身。 有关调试器和调试器扩展的详细信息,请参阅 Windows 调试

要求

要求
最低受支持的客户端 在 Windows XP Service Pack 1 (SP1) 、Windows Server 2003 及更高版本的 Windows 中可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别

另请参阅

编写 Bug 检查回调例程

KBUGCHECK_CALLBACK_REASON

KBUGCHECK_REASON_CALLBACK_RECORD

KeDeregisterBugCheckReasonCallback

KeInitializeCallbackRecord

KeRegisterBugCheckCallback