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

# XMemSetWin32HeapTrackingHooks

> XMemSetWin32HeapTrackingHooks

# XMemSetWin32HeapTrackingHooks

Définit des fonctions de rappel de suivi pour l'allocation, la réallocation et la désallocation de mémoire des tas Win32.

<a id="syntaxSection" />

## Syntaxe

```cpp theme={null}
VOID XMemSetWin32HeapTrackingHooks(  
         PHEAP_TRACK_ALLOC_ROUTINE AllocRoutine,  
         PHEAP_TRACK_REALLOC_ROUTINE ReAllocRoutine,  
         PHEAP_TRACK_FREE_ROUTINE FreeRoutine  
)  
```

<a id="parametersSection" />

### Paramètres

*AllocRoutine*   \_In\_\
Type : [PHEAP\_TRACK\_ALLOC\_ROUTINE](/fr/reference/system/xmem/functions/pheap_track_alloc_routine)

Pointeur vers une fonction de rappel de suivi pour l'allocation de mémoire.

*ReAllocRoutine*   \_In\_\
Type : [PHEAP\_TRACK\_REALLOC\_ROUTINE](/fr/reference/system/xmem/functions/pheap_track_realloc_routine)

Pointeur vers une fonction de rappel de suivi pour la réallocation de mémoire.

*FreeRoutine*   \_In\_\
Type : [PHEAP\_TRACK\_FREE\_ROUTINE](/fr/reference/system/xmem/functions/pheap_track_free_routine)

Pointeur vers une fonction de rappel de suivi pour la désallocation de mémoire.

<a id="retvalSection" />

### Valeur renvoyée

Type : VOID

Aucune.

<a id="remarksSection" />

## Remarques

Cette fonction vous permet de suivre l'allocation, la réallocation et la désallocation de mémoire des tas Win32 en spécifiant des fonctions de rappel qui sont appelées par le gestionnaire de mémoire du GDK lorsque ces opérations sur la mémoire du tas sont appelées. Pour plus d'informations sur le suivi des opérations sur la mémoire, consultez [Diagnostics et suivi de la mémoire](/fr/build/console-features/memory/system-memory-diagnostics).

<Note>Le CRT effectue plusieurs allocations de tas pendant l'initialisation et dans les points d'entrée des DLL/EXE liés au CRT.  Comme cette initialisation est un prérequis à l'exécution de tout code au sein de ces modules, il n'est généralement pas possible d'appeler XMemSetWin32HeapTrackingHooks avant que *toutes* les allocations de tas aient lieu.  Le code de rappel doit tenir compte de ce comportement et le gérer en conséquence.</Note>

Avant d'appeler cette fonction, vous devez d'abord implémenter les fonctions de rappel de suivi correspondantes suivantes :

* Pour suivre l'allocation lorsque `HeapAlloc` est appelé, implémentez une fonction [de rappel PHEAP\_TRACK\_ALLOC\_ROUTINE](/fr/reference/system/xmem/functions/pheap_track_alloc_routine).
* Pour suivre la réallocation lorsque `HeapReAlloc` est appelé, implémentez une fonction [de rappel PHEAP\_TRACK\_REALLOC\_ROUTINE](/fr/reference/system/xmem/functions/pheap_track_realloc_routine).
* Pour suivre la désallocation lorsque `HeapFree` est appelé, implémentez une fonction [de rappel PHEAP\_TRACK\_FREE\_ROUTINE](/fr/reference/system/xmem/functions/pheap_track_free_routine).

Vous n'avez besoin d'implémenter que les fonctions de rappel de suivi nécessaires à vos besoins de suivi. Pour arrêter le suivi des opérations sur la mémoire du tas, appelez cette fonction et spécifiez `NULL` pour les opérations sur la mémoire du tas dont vous souhaitez arrêter le suivi.

L'exemple suivant définit des fonctions de rappel de suivi, puis utilise la fonction `XMemSetWin32HeapTrackingHooks` pour définir et effacer les hooks vers ces fonctions de rappel de suivi.

```cpp theme={null}
void OnHeapAlloc(HANDLE hHeap, DWORD flags, SIZE_T size, PVOID addr)
{
    DebugPrint("[Heap 0x%p] Alloc %I64d bytes at addr: %p\n",
               hHeap, size, addr);
}

void OnHeapRealloc(HANDLE hHeap, DWORD flags, SIZE_T size, PVOID oldAddr, PVOID newAddr)
{
    DebugPrint("[Heap 0x%p] ReAlloc addr: 0x%p to %I64d bytes (new addr: 0x%p)\n",
               hHeap, oldAddr, size, newAddr);
}

void OnHeapFree(HANDLE hHeap, DWORD flags, PVOID addr)
{
    DebugPrint("[Heap 0x%p] Free addr: 0x%p\n",
               hHeap, addr);
}

// Set Hooks
XMemSetWin32HeapTrackingHooks(OnHeapAlloc, OnHeapReAlloc, OnHeapFree);

// Clear Hooks
XMemSetWin32HeapTrackingHooks(NULL, NULL, NULL);
```

<a id="requirementsSection" />

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

<a id="seealsoSection" />

## Voir aussi

[Mémoire](/fr/build/console-features/memory/system-memory-overview)\
[XMem](/fr/reference/system/xmem/xmem_members)


## Related topics

- [XMemSetWin32HeapTrackingHooks](/reference/system/xmem/functions/xmemsetwin32heaptrackinghooks.md)
- [PHEAP_TRACK_ALLOC_ROUTINE callback](/reference/system/xmem/functions/pheap_track_alloc_routine.md)
- [PHEAP_TRACK_REALLOC_ROUTINE callback](/reference/system/xmem/functions/pheap_track_realloc_routine.md)
- [PHEAP_TRACK_FREE_ROUTINE callback](/reference/system/xmem/functions/pheap_track_free_routine.md)
