mmPrefetchPages 函数 (ntifs.h)

MmPrefetchPages 例程以最佳方式从辅助存储读取页面组。

语法

NTSTATUS MmPrefetchPages(
  [in] ULONG      NumberOfLists,
  [in] PREAD_LIST *ReadLists
);

参数

[in] NumberOfLists

在 ReadLists 参数中传递的数组中的读取列表数。

[in] ReadLists

指向要预提取的读取列表数组的指针。

返回值

MmPrefetchPages 返回STATUS_SUCCESS或适当的错误状态,表示操作的最终完成状态。 可能的错误状态代码包括以下内容:

返回代码 说明
STATUS_INSUFFICIENT_RESOURCES 无法分配此函数所需的临时缓冲区。
STATUS_INVALID_PARAMETER_1 ReadLists 中的节不可预提取 (例如,物理或页面文件支持的节) ,或者提供的 NumberOfLists 值无效。

MmPrefetchPages 在成功时返回STATUS_SUCCESS,如果所有请求的页面都已位于内存中,则表明不需要从辅助存储进行读取。

注解

MmPrefetchPages 以最佳方式从读取列表中所述的辅助存储读取页面。 调用方生成各种文件对象和逻辑块偏移量的列表,并将其传递给 MmPrefetchPages 函数,该函数检查内部页面,读取那些尚未有效或处于转换状态的页面。 通过一次读取来读取页面,使用虚拟页面来弥合小间距。 如果差距“很大”,则会发出单独的读取。

注意

要预提取文件的 section 对象 必须已存在。 可以通过调用 ZwCreateSection 来获取节句柄。

要求

要求
最低受支持的客户端 Windows XP
目标平台 通用
标头 ntifs.h (包括 Ntifs.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)