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

另请参阅

MapViewOfFile

MapViewOfFileNuma2