XMEM_SET_ALLOCATION_HOOKS
Utilisée par les titres pour inscrire des hooks d’allocation de mémoire.Syntaxe
Paramètres
AllocRoutine In Type : PXMEMALLOC_ROUTINE Pointeur vers la fonction d’allocation du titre. Consultez la rubrique XMEMALLOC_ROUTINE pour la définition de cette fonction. FreeRoutine InType : PXMEMFREE_ROUTINE Pointeur vers la fonction de désallocation du titre. Consultez la rubrique XMEMFREE_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 via 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 hooks d’allocation, XMemAllocDefault et XMemFreeDefault sont utilisés à la place (consultez xmem.h pour la déclaration de ces hooks). Si les titres souhaitent fournir des hooks d’allocation à des fins de suivi, sans pour autant 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 et pour XMEMFREE_ROUTINE si vous les interceptez ; n’intercepter que l’une des deux est considéré comme une erreur. Les hooks fournis par le titre sont exportés depuis l’exécutable du jeu et sont liés au moment du chargement de xmem.dll (normalement au lancement du jeu).Les fonctions inscrites par XMemSetAllocationHooks doivent être définies dans l’exe du jeu pour garantir que les adresses sont renseignées de manière statique. Si les pointeurs de fonction fournis font référence à des fonctions situées dans des DLL référencées par l’exe du jeu, le compilateur doit émettre du code d’initialisation statique pour renseigner la mémoire, lequel peut s’exécuter après que la plateforme a recherché les hooks de remplacement, ce qui entraîne un comportement imprévisible. Un avertissement apparaît dans la fenêtre de sortie du débogueur si la plateforme détecte que cela a pu se produire.
Configuration requise
En-tête : xmem.h Plateformes prises en charge : consoles de la famille XBOX One et consoles XBOX SeriesVoir aussi
Référence XMemXMEM_ALLOCATION_HOOKS
XMEMALLOC_ROUTINE
XMEMFREE_ROUTINE
