Skip to main content

XMEM_SET_ALLOCATION_HOOKS

供游戏用于注册内存分配挂钩。

语法

参数

AllocRoutine In 类型:PXMEMALLOC_ROUTINE 指向游戏的分配函数的指针。有关此函数的定义,请参阅 XMEMALLOC_ROUTINE 主题。 FreeRoutine In
类型:PXMEMFREE_ROUTINE
指向游戏的释放函数的指针。有关此函数的定义,请参阅 XMEMFREE_ROUTINE 主题。

备注

可以通过 XMEM_SET_ALLOCATION_HOOKS 宏使用游戏提供的回调来监视(或重写)分配。通过正确使用此宏,游戏可以跟踪游戏代码以及平台代码发出的每一次分配。 如果游戏选择不提供自己的分配挂钩,则会改用 XMemAllocDefault 和 XMemFreeDefault(请参阅 xmem.h 以了解这些挂钩的声明)。如果游戏希望为了跟踪而提供分配挂钩,但不希望实现自己的分配器,则可以直接调用默认分配器。 如果你要挂接分配相关函数,务必同时为 XMEMALLOC_ROUTINE 和 XMEMFREE_ROUTINE 提供实现;仅挂接其中一个将被视为错误。 游戏提供的挂钩从游戏可执行文件中导出,并在 xmem.dll 的加载时(通常是游戏启动时)绑定。
由 XMemSetAllocationHooks 注册的函数必须在游戏 exe 中定义,以确保地址被静态填充。如果所提供的函数指针指向游戏 exe 引用的 DLL 中的函数,编译器必须发出静态初始化程序代码来填充该内存,而这段代码可能在平台查询重写挂钩之后才执行,从而导致不可预测的行为。如果平台检测到可能发生了这种情况,会在调试器输出窗口中显示警告。

要求

头文件: xmem.h 支持的平台: XBOX One 系列主机和 XBOX Series 主机

另请参阅

XMem 参考
XMEM_ALLOCATION_HOOKS
XMEMALLOC_ROUTINE
XMEMFREE_ROUTINE
Last modified on October 19, 2026