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) |