KBUGCHECK_ADD_PAGES 结构 (wdm.h)

KBUGCHECK_ADD_PAGES 结构描述了一页或多页驱动程序提供的数据,这些数据将由KBUGCHECK_REASON_CALLBACK_ROUTINE回调函数写入故障转储文件。

语法

typedef struct _KBUGCHECK_ADD_PAGES {
  PVOID     Context;
  ULONG     Flags;
  ULONG     BugCheckCode;
  ULONG_PTR Address;
  ULONG_PTR Count;
} KBUGCHECK_ADD_PAGES, *PKBUGCHECK_ADD_PAGES;

成员

Context

包含专用上下文数据,以便独占使用回调例程。 回调例程可以将此成员设置为任何值。 通常,如果需要多次调用回调例程,则例程会将此成员设置为在初始调用期间指向驱动程序提供的缓冲区。 在后续调用期间,回调例程可以读取此缓冲区的先前内容并更新其内容。 在对回调例程进行初始调用之前, ContextNULL

Flags

包含描述添加页请求的标志。 回调例程必须设置此成员的值。 将此成员设置为以下一个或多个标志位的按位 OR:

KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS

指示 Address 成员包含虚拟地址。

KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS

指示 Address 成员包含物理地址。

KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST

指示回调例程请求再次调用它,以便可以添加更多页。

回调例程必须设置KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS标志或KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS标志,但不能同时设置两者。 进入回调例程时, Flags 初始化为零。

BugCheckCode

包含 bug 检查 代码,该代码指定 bug 检查的原因。 回调例程可以使用此信息决定是否将任何页面添加到故障转储文件。 有关 bug 检查代码的完整列表,请参阅 WDK 中包含的 Bugcodes.h 头文件。

Address

指定回调例程请求添加到故障转储文件的页面的物理或虚拟地址。

Count

指定要添加到故障转储文件的连续页数,从 地址 成员指定的虚拟或物理地址开始。 如果 Count> 1 和 Address 是虚拟地址,则页面在虚拟内存空间中是连续的。 如果 Count> 1 和 Address 是物理地址,则页面在物理内存空间中是连续的。 回调例程可以将此成员设置为零,以指示它不需要将任何页面添加到故障转储文件。

注解

在调用 KbCallbackAddPages 回调例程时,操作系统将 Reason 参数设置为 KbCallbackAddPages,并将 ReasonSpecificData 参数设置为指向 KBUGCHECK_ADD_PAGES 结构。

有关如何使用此结构的详细信息,请参阅 编写 Bug 检查回调例程KBUGCHECK_REASON_CALLBACK_ROUTINE 回调函数。

要求

要求
最低受支持的客户端 在 Windows Server 2008 及更高版本的 Windows 中受支持。
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)

另请参阅

编写 Bug 检查回调例程