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

# Hooks de mémoire

> Contrôlez les allocations de mémoire du SDK PlayFab Services en installant des hooks alloc et free personnalisés avec PFMemSetFunctions avant PFInitialize.

# Gérer les allocations de mémoire

Avec l'API C du SDK PlayFab Services, vous pouvez spécifier une fonction de rappel que le SDK appelle chaque fois qu'il tente d'allouer de la mémoire. Si vous ne spécifiez pas de fonctions de rappel, le SDK utilise les routines d'allocation de mémoire standard.

Pour spécifier manuellement vos routines de mémoire, procédez comme suit :

* Au démarrage du jeu :
  * Appelez [**PFMemSetFunctions**](/fr/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions) pour spécifier les rappels d'allocation et de libération de la mémoire.
  * Appelez [**PFInitialize**](/fr/services/playfab/api-references/c/pfcore/functions/pfinitialize) pour initialiser la bibliothèque PlayFab Core.
  * Appelez [**PFServicesInitialize**](/fr/services/playfab/api-references/c/pfservices/functions/pfservicesinitialize) pour initialiser la bibliothèque PlayFab Services.

<Info>
  L'ordre est important. **PFMemSetFunctions** doit précéder **PFInitialize**, et **PFInitialize** doit précéder **PFServicesInitialize**. Si vous omettez l'appel explicite à **PFInitialize**, **PFServicesInitialize** initialise Core en interne, mais vos hooks de mémoire ne sont pas encore appliqués à ce moment-là : le SDK utilise donc les routines d'allocation par défaut.
</Info>

```cpp theme={null}
    PFMemoryHooks playFabHooks{ MyAllocHook, MyFreeHook };
    PFMemSetFunctions(&playFabHooks);
    HRESULT hr = PFInitialize(nullptr); // Add your own error handling when FAILED(hr) == true
    hr = PFServicesInitialize(nullptr); // Add your own error handling when FAILED(hr) == true
```

* Pendant l'exécution du jeu :
  * Tous les appels au SDK qui allouent ou libèrent de la mémoire appellent les rappels de gestion de la mémoire spécifiés.

* À la fermeture du jeu :
  * Appelez [**PFServicesUninitializeAsync**](/fr/services/playfab/api-references/c/pfservices/functions/pfservicesuninitializeasync) pour récupérer toutes les ressources associées à PlayFab Services.
  * Appelez [**PFUninitializeAsync**](/fr/services/playfab/api-references/c/pfcore/functions/pfuninitializeasync) pour récupérer toutes les ressources associées à PlayFab Core.
  * Nettoyez le gestionnaire de mémoire personnalisé de votre jeu.

## Référence

[Documentation de référence de l'API](/fr/services/playfab/api-references/c/pfplatform/pfplatform_members)


## Related topics

- [PFMemoryHooks](/fr/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md)
- [Gestion de la mémoire dans le SDK unifié PlayFab](/fr/services/playfab/sdks/unified-sdk/memory-management.md)
- [Vue d'ensemble de l'API C Services - PFPlatform.h](/fr/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [Cycle de vie du SDK](/fr/services/playfab/sdks/c/lifecycle.md)
- [PFMemSetFunctions](/fr/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md)
