> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XMEM_SET_ALLOCATION_HOOKS

> XMEM_SET_ALLOCATION_HOOKS

# XMEM\_SET\_ALLOCATION\_HOOKS

Usada por los títulos para registrar enlaces de asignación de memoria.

## Sintaxis

```cpp theme={null}
#define XMEM_SET_ALLOCATION_HOOKS(AllocRoutine, FreeRoutine) \
    __declspec(dllexport) XMEM_ALLOCATION_HOOKS __XMemAllocationHooks__ = { AllocRoutine, FreeRoutine };
```

### Parámetros

*AllocRoutine*   *In*

Tipo: PXMEMALLOC\_ROUTINE

Puntero a la función de asignación del título. Consulte el tema [XMEMALLOC\_ROUTINE](/es/reference/system/xmem/functions/xmemalloc_routine.md) para ver la definición de esta función.

*FreeRoutine*   *In*\
Tipo: PXMEMFREE\_ROUTINE

Puntero a la función de desasignación del título. Consulte el tema [XMEMFREE\_ROUTINE](/es/reference/system/xmem/functions/xmemalloc_routine.md) para ver la definición de esta función.

## Comentarios

Las asignaciones se pueden supervisar (o invalidar) con una devolución de llamada proporcionada por el título a través de la macro **XMEM\_SET\_ALLOCATION\_HOOKS**. Con un uso adecuado de esta macro, los títulos pueden realizar el seguimiento de todas las asignaciones realizadas desde el código del título, así como del código de la plataforma.

Si los títulos deciden no proporcionar sus propios enlaces de asignación, se usarán **XMemAllocDefault** y **XMemFreeDefault** en su lugar (consulte xmem.h para ver la declaración de estos enlaces). Si los títulos desean proporcionar enlaces de asignación con fines de seguimiento, pero no quieren implementar su propio asignador, pueden llamar directamente al asignador predeterminado.

Es importante proporcionar una implementación tanto de [XMEMALLOC\_ROUTINE](/es/reference/system/xmem/functions/xmemalloc_routine.md) como de [XMEMFREE\_ROUTINE](/es/reference/system/xmem/functions/xmemfree_routine.md) si los enlaza; enlazar solo uno de ellos se considerará un error.

Los enlaces proporcionados por el título se exportan desde el archivo ejecutable del juego y se vinculan en el momento de la carga de xmem.dll (normalmente, el momento en que se inicia el juego).

> [!NOTE]
>
> Las funciones registradas por XMemSetAllocationHooks deben definirse dentro del archivo exe del juego para garantizar que las direcciones se rellenen de forma estática.  Si los punteros de función proporcionados hacen referencia a funciones de DLL a los que hace referencia el archivo exe del juego, el compilador debe emitir código inicializador estático para rellenar la memoria, que puede ejecutarse después de que la plataforma haya consultado los enlaces de invalidación, lo que da lugar a un comportamiento impredecible.  Si la plataforma detecta que esto puede haber ocurrido, aparecerá una advertencia en la ventana de salida del depurador.

## Requisitos

**Encabezado:** xmem.h

**Plataformas compatibles:** consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

[Referencia de XMem](/es/reference/system/xmem/xmem_members.md)\
[XMEM\_ALLOCATION\_HOOKS](/es/reference/system/xmem/structs/xmem_allocation_hooks.md)\
[XMEMALLOC\_ROUTINE](/es/reference/system/xmem/functions/xmemalloc_routine.md)\
[XMEMFREE\_ROUTINE](/es/reference/system/xmem/functions/xmemalloc_routine.md)


## Related topics

- [XMEM_ALLOCATION_HOOKS](/reference/system/xmem/structs/xmem_allocation_hooks.md)
- [XMemFreeDefault](/reference/system/xmem/functions/xmemfreedefault.md)
