> ## 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 après 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

La 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-CA/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md) et transmettez la structure à [PFMemSetFunctions](https://docs.xbox.com/fr-CA/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md) avant d'appeler [PFInitialize](https://docs.xbox.com/fr-CA/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-CA/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 transmette à votre rappel PFMemFreeFunction. PlayFab transmet à votre rappel PFMemFreeFunction chaque pointeur non null retourné par ce rappel 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 acheminent 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-CA/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-CA/services/playfab/api-references/c/pfplatform/pfplatform_members.md)

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

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


## Related topics

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