> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PFMemAllocFunction

> Rappel que PlayFab appelle pour allouer une mémoire tampon d'une taille donnée une fois qu'un titre a installé des hooks de mémoire personnalisés avec PFMemSetFunctions.

Rappel que PlayFab appelle chaque fois qu'il doit allouer dynamiquement une mémoire tampon.

## Syntaxe

```cpp theme={null}
void* STDAPIVCALLTYPE PFMemAllocFunction(
    size_t size,
    uint32_t memoryTypeId
);
```

### Paramètres

**`size`**   `_In_` size\_t

Taille, en octets, de l'allocation à effectuer. Cette valeur n'est jamais nulle.

**`memoryTypeId`**   `_In_` uint32\_t

Identificateur opaque de la catégorie interne de la mémoire allouée. Ignorez cette valeur.

### Valeur de retour

Type : void\*

Pointeur vers un bloc de mémoire alloué de la taille spécifiée, ou `nullptr` si l'allocation a échoué. L'en-tête annote la valeur de retour avec `_Ret_maybenull_` et `_Post_writable_byte_size_(size)`.

## Notes

Pour installer ce rappel, définissez-le dans le membre `alloc` d'une structure [PFMemoryHooks](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md) et passez la structure à [PFMemSetFunctions](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md) avant d'appeler [PFInitialize](https://docs.xbox.com/fr/services/playfab/api-references/c/pfcore/functions/pfinitialize.md). Définissez en même temps le membre `free` sur un rappel [PFMemFreeFunction](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md) correspondant. PFMemSetFunctions retourne `E_INVALIDARG` si un seul des deux membres est défini.

Le rappel doit retourner un pointeur vers un bloc de mémoire contigu de la taille demandée. Le bloc doit rester valide jusqu'à ce que PlayFab le passe à votre rappel PFMemFreeFunction. PlayFab passe chaque pointeur non null retourné par ce rappel à votre rappel PFMemFreeFunction lorsqu'il n'a plus besoin de la mémoire.

Si libHttpClient n'est pas encore initialisé lorsque vous appelez PFMemSetFunctions, PlayFab installe également des hooks qui font passer les allocations de libHttpClient par ce rappel.

Pour obtenir les hooks actuellement utilisés, y compris les hooks par défaut, appelez [PFMemGetFunctions](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/functions/pfmemgetfunctions.md).

PlayFab peut appeler ce rappel à partir de différents threads ; il doit donc être thread-safe.

## Configuration requise

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

**Bibliothèque :** PlayFabCore.lib

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

## Voir aussi

[Membres de PFPlatform](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/pfplatform_members.md)

[PFMemoryHooks](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md)

[PFMemFreeFunction](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md)


## Related topics

- [PFMemFreeFunction](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md)
- [PFMemoryHooks](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md)
- [Vue d'ensemble de l'API C Services - PFPlatform.h](https://docs.xbox.com/fr/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [HCMemAllocFunction](https://docs.xbox.com/fr/reference/live/httpclient/httpclient/functions/hcmemallocfunction.md)
- [XblMemAllocFunction](https://docs.xbox.com/fr/reference/live/xsapi-c/xbox_live_global_c/functions/xblmemallocfunction.md)
