MapViewOfFile2 函数 (memoryapi.h)
将文件视图或页面文件支持的节映射到指定进程的地址空间中。
语法
PVOID MapViewOfFile2(
[in] HANDLE FileMappingHandle,
[in] HANDLE ProcessHandle,
[in] ULONG64 Offset,
[in, optional] PVOID BaseAddress,
[in] SIZE_T ViewSize,
[in] ULONG AllocationType,
[in] ULONG PageProtection
);
parameters
[in] FileMappingHandle
要映射到指定进程的地址空间的节的 HANDLE 。
[in] ProcessHandle
节将映射到的进程句 柄 。 句柄必须具有 PROCESS_VM_OPERATION 访问掩码。
[in] Offset
部分开头的偏移量。 这必须是 64k 对齐的。
[in, optional] BaseAddress
视图的所需基址。 地址向下舍入到最近的 64k 边界。 如果此参数为 NULL,则系统选取基址。
[in] ViewSize
要映射的字节数。 值为 0 (0) 指定要映射整个部分。
[in] AllocationType
分配的类型。 此参数可以是零 (0) 或以下常量值之一:
- MEM_RESERVE - 映射保留视图。
- MEM_LARGE_PAGES - 映射大型页面视图。 此标志指定应使用 大页支持映射视图。 视图的大小必须是 GetLargePageMinimum 函数报告的大型页面大小的倍数,并且文件映射对象必须已使用 SEC_LARGE_PAGES 选项创建。 如果为 BaseAddress 参数提供非 null 值,则该值必须是 GetLargePageMinimum 的倍数。
[in] PageProtection
所需的页面保护。
对于使用 SEC_IMAGE 属性创建的文件映射对象, PageProtection 参数不起作用,应设置为任何有效值,例如 PAGE_READONLY。
返回值
如果成功,则返回映射视图的基址。 否则,返回 NULL ,并且可以使用 GetLastError 扩展错误状态。
注解
此函数在标头中作为内联函数实现,不能在任何导出库或 DLL 中找到。 它与调用 MapViewOfFileNuma2 (最后一个参数设置为 NUMA_NO_PREFERRED_NODE
)相同。
要求
最低受支持的客户端 | Windows 10版本 1703 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2016 [仅限桌面应用] |
目标平台 | Windows |
标头 | memoryapi.h (包括 Windows.h、Memoryapi.h) |
Library | onecore.lib |
DLL | Kernel32.dll |