XMemMapPhysicalPages
将由 XMemAllocatePhysicalPages 分配的页映射到虚拟地址空间中。语法
参数
VirtualAddress _In_类型:PVOID 页应被映射到的地址。 NumberOfPages _In_
类型:ULONG_PTR PageArray 中的条目数。 PageArray _In_reads_opt_(NumberOfPages)
类型:PULONG_PTR 表示要映射的页的页帧编号数组。
返回值
类型:PVOID 物理页已被映射到的虚拟地址;如果发生映射失败,则返回 NULL。 如果发生映射失败,请调用 GetLastError 以获取扩展错误信息。备注
必须先通过调用 XMemVirtualAlloc 并使用 MEM_RESERVE、页大小为 MEM_64K_PAGES 或 MEM_2MB_PAGES,以及 XMEM_MAPPABLE 标志来预留虚拟地址范围。由 VirtualAlloc 进行的 MEM_PHYSICAL 地址预留不能用于映射此内存。 如果虚拟地址范围已经映射了页,它们将被取消映射。此外,可以为 PageArray 指定 NULL 以便取消提交该内存区域。 XMemMapPhysicalPages 可用于在虚拟地址空间中多次映射同一物理页。如果多次映射同一页,则多个映射必须指定相同的缓存属性(如果未提供缓存属性,则隐式为 CPU 一致;否则可选 PAGE_NOCACHE 或 PAGE_WRITECOMBINE)。将物理页映射到用 MEM_2MB_PAGES 预留的内存中时,物理页必须使用 XMEM_2MB_CLUSTERS 进行分配。PageArray 参数只应包含每个 2MB 群集的第一个物理页。
要求
头文件: xmem.h 库: xmem.lib 支持的平台: XBOX One 系列主机和 XBOX Series 主机另请参阅
XMem 参考XMemVirtualAlloc
VirtualFree
XMemFreePhysicalPages
