> ## 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

Utilisée par les titres pour inscrire des crochets d'allocation de mémoire.

## Syntaxe

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

### Paramètres

*AllocRoutine*   *In*

Type : PXMEMALLOC\_ROUTINE

Pointeur vers la fonction d'allocation du titre. Consultez la rubrique [XMEMALLOC\_ROUTINE](/fr-CA/reference/system/xmem/functions/xmemalloc_routine) pour la définition de cette fonction.

*FreeRoutine*   *In*\
Type : PXMEMFREE\_ROUTINE

Pointeur vers la fonction de désallocation du titre. Consultez la rubrique [XMEMFREE\_ROUTINE](/fr-CA/reference/system/xmem/functions/xmemalloc_routine) pour la définition de cette fonction.

## Remarques

Les allocations peuvent être surveillées (ou remplacées) à l'aide d'un rappel fourni par le titre au moyen de la macro **XMEM\_SET\_ALLOCATION\_HOOKS**. En utilisant correctement cette macro, les titres peuvent suivre chaque allocation effectuée par le code du titre ainsi que par le code de la plateforme.

Si les titres choisissent de ne pas fournir leurs propres crochets d'allocation, **XMemAllocDefault** et **XMemFreeDefault** seront utilisés à la place (consultez xmem.h pour la déclaration de ces crochets.) Si les titres souhaitent fournir des crochets d'allocation à des fins de suivi, mais ne souhaitent pas implémenter leur propre allocateur, ils peuvent appeler directement l'allocateur par défaut.

Il est important de fournir une implémentation pour [XMEMALLOC\_ROUTINE](/fr-CA/reference/system/xmem/functions/xmemalloc_routine) et pour [XMEMFREE\_ROUTINE](/fr-CA/reference/system/xmem/functions/xmemfree_routine) si vous les interceptez; intercepter une seule d'entre elles sera considéré comme une erreur.

Les crochets fournis par le titre sont exportés à partir de l'exécutable du jeu et sont liés au moment du chargement de xmem.dll (normalement au moment où le jeu est lancé).

<Note>Les fonctions inscrites par XMemSetAllocationHooks doivent être définies dans l'exécutable du jeu afin de garantir que les adresses sont renseignées de manière statique.  Si les pointeurs de fonction fournis font référence à des fonctions dans des DLL référencées par l'exécutable du jeu, le compilateur doit émettre du code d'initialisation statique pour renseigner la mémoire, lequel pourrait s'exécuter après que la plateforme a interrogé les crochets de remplacement, ce qui entraînerait un comportement imprévisible.  Un avertissement apparaîtra dans la fenêtre de sortie du débogueur si la plateforme détecte que cela a pu se produire.</Note>

## Configuration requise

**En-tête :** xmem.h

**Plateformes prises en charge :** consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[Référence XMem](/fr-CA/reference/system/xmem/xmem_members)\
[XMEM\_ALLOCATION\_HOOKS](/fr-CA/reference/system/xmem/structs/xmem_allocation_hooks)\
[XMEMALLOC\_ROUTINE](/fr-CA/reference/system/xmem/functions/xmemalloc_routine)\
[XMEMFREE\_ROUTINE](/fr-CA/reference/system/xmem/functions/xmemalloc_routine)


## Related topics

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