Skip to main content

XMemFree

Fonction de rappel de désallocation de mémoire définie par l’application qui remplace le désallocateur de mémoire par défaut.

Syntaxe

Paramètres

Address _In_
Type : PVOID
Adresse de la mémoire à libérer. Attributes _In_
Type : ULONGLONG
Attributs de l’allocation. Pour plus de détails, consultez XALLOC_ATTRIBUTES.

Valeur renvoyée

Type : VOID

Remarques

Pour plus d’informations sur la syntaxe des routines d’allocation de mémoire, consultez XMEMALLOC_ROUTINE.
Le code source de l’implémentation par défaut de XMemAlloc et XMemFree est installé avec le Microsoft Game Development Kit (GDK). Consultez \GXDK\gameKit\Source\amd64\heap.c.
Si vous implémentez votre propre fonction XMemFree, il est essentiel de ne pas effectuer d’appel au pilote Direct3D 12 depuis celle-ci. En effet, le fonctionnement normal du pilote peut entraîner l’appel de XMemFree sans aucune protection contre la récursivité. Cette exigence s’étend au fait de ne pas effectuer d’opérations Release finales sur des objets Direct3D 12, car cela peut entraîner des appels implicites au pilote.
Il est important que la valeur du paramètre Attributes corresponde à celle qui a été transmise lors de l’appel initial à XMemAlloc. C’est à votre implémentation de déterminer si cette valeur est mise en cache par votre code ou synthétisée en fonction des besoins. Prenons un scénario dans lequel votre allocateur sous-jacent alloue des blocs contigus de 16 octets alignés sur une limite de 16 octets, mais où vous demandez un bloc de 128 octets aligné sur 64 octets, ce qui est d’ailleurs similaire au tas CRT lorsque l’allocateur de petits objets est désactivé. Pour traiter cette requête, l’allocateur peut en réalité allouer plus de 128 octets, afin de pouvoir aligner l’adresse pour vous. Ce faisant, il peut stocker la longueur du bloc et l’adresse de début réelle du bloc non aligné dans le bloc de 16 octets qui précède l’adresse qu’il vous renvoie. La seule façon de déterminer correctement si c’est le cas est de disposer des informations complètes du paramètre Attributes afin d’identifier l’allocateur utilisé et de remonter correctement la chaîne jusqu’au début réel du bloc alloué. Une non-correspondance de Attributes peut entraîner une corruption, des fuites de mémoire ou d’autres comportements indésirables.

Configuration requise

En-tête : xmem.h Bibliothèque : xmem.lib Plateformes prises en charge : consoles de la famille XBOX One et consoles XBOX Series

Voir aussi

Référence XMem
XMEMALLOC_ROUTINE
XALLOC_ATTRIBUTES
XMemAlloc
XMemFreeDefault
Last modified on October 6, 2026