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 函数,该函数检查内部页面、读取那些尚未有效或正在转换的页面。 通过单个读取来读取页面,使用虚拟页面来弥合小空白。 如果差距为“大”,则会发出单独的读取。
注意
节对象 必须已存在,才能预提取文件。 可以通过调用 ZwCreateSection来获取节句柄。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | Windows XP |
| 目标平台 | 普遍 |
| 标头 | ntifs.h (include Ntifs.h, Ntifs.h) |
| 库 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |
| DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |