wdm.h) (KBUGCHECK_REMOVE_PAGES 结构

KBUGCHECK_REMOVE_PAGES 结构描述一页或多页驱动程序提供的数据,这些数据将由KBUGCHECK_REASON_CALLBACK_ROUTINE回调例程从故障转储文件中删除。

语法

typedef struct _KBUGCHECK_REMOVE_PAGES {
  PVOID     Context;
  ULONG     Flags;
  ULONG     BugCheckCode;
  ULONG_PTR Address;
  ULONG_PTR Count;
} KBUGCHECK_REMOVE_PAGES, *PKBUGCHECK_REMOVE_PAGES;

成员

Context

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

Flags

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

KB_ADD_PAGES_FEATURE_SHIFT       4

KB_REMOVE_PAGES_FEATURE_SHIFT    4

KB_ADD_PAGES_FEATURE_MASK        (0xF << KB_ADD_PAGES_FEATURE_SHIFT)

KB_REMOVE_PAGES_FEATURE_MASK     (0xF << (KB_ADD_PAGES_FEATURE_SHIFT + KB_REMOVE_PAGES_FEATURE_SHIFT))

BugCheckCode

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

Address

指定要从故障转储文件中删除回调例程请求的一个或多个页面的物理或虚拟地址。

Count

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

注解

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

有关 bug 检查回调例程的详细信息,请参阅编写 Bug 检查回调例程

要求

要求
Header wdm.h