Skip to main content

XMemCreateWin32Heap

创建 Win32 堆。

语法

参数

HeapFlags _In_
类型:ULONGLONG
指示要创建的堆的内存来源。 baseAddress _In_
类型:PVOID
原位堆分配的基地址。如果 HeapFlags 设置为 XMEM_HEAP_INPLACE,则此值必须指向已提交内存中对齐到 4-KB 边界的地址;否则,此值必须设置为 NULL

返回值

类型:HANDLE 如果成功,则返回所创建 Win32 堆的句柄;否则返回 NULL。如果可用,扩展错误信息将提供给应用当前的 XErrorCallback 回调。

备注

此函数创建一个 Win32 堆,分别从 HeapFlagsbaseAddress 指示的源和基地址为该堆分配内存。如果创建堆时未在 HeapFlags 中指定 XMEM_HEAP_INPLACE,则堆由 2MB 页支持(如果指定了 XMEM_HEAP_64K_PAGES,则为 64KB 页)。如果在尝试创建 Win32 堆时发生错误,此方法将返回 NULL,并且(如果可用)错误将报告给应用当前的 XErrorCallback 回调。有关处理异常错误情况的更多信息,请参阅 XError 有关配置和访问内存的更多信息,请参阅为游戏和开发工具包配置内存

分配工具内存

如果在 HeapFlags 中指定了 XMEM_HEAP_TOOL,则函数将尝试从工具分区分配内存以创建 Win32 堆,具体取决于分析模式和迭代模式设置:
  • 如果迭代模式被禁用且分析模式已启用,则函数尝试从工具分区分配请求的内存量。如果请求的量不可用,则会发生错误。
  • 如果迭代模式被禁用且分析模式也被禁用,则会发生错误。
  • 如果迭代模式已启用,则函数尝试从游戏分区分配请求的内存量。如果请求的量不可用,则会发生错误。
启用分析模式后,你的游戏将可以使用额外的内存,可在开发期间用于任何用途,从游戏引擎工具到未优化的游戏资源。有关分析模式的更多信息,请参阅分析模式。启用迭代模式时,工具分区不可用。 你可以使用 XMemIsToolsMemAvailable 函数来检查在分析模式下工具分区中的内存是否可用。

要求

标头: xmem.h 库: xmem.lib 支持的平台: XBOX One 系列主机和 XBOX Series 主机

请参阅

内存
XMem
最后修改于 2026年8月24日