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

> Retorno de chamada que o PlayFab chama para alocar um buffer de memória de um determinado tamanho depois que um título instala ganchos de memória personalizados com PFMemSetFunctions.

Um retorno de chamada que o PlayFab chama sempre que precisa alocar dinamicamente um buffer de memória.

## Sintaxe

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

### Parâmetros

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

O tamanho, em bytes, da alocação a ser feita. Esse valor nunca é zero.

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

Um identificador opaco da categoria interna da memória que está sendo alocada. Ignore esse valor.

### Valor de retorno

Tipo: void\*

Um ponteiro para um bloco de memória alocado do tamanho especificado ou `nullptr` se a alocação falhar. O cabeçalho anota o valor de retorno com `_Ret_maybenull_` e `_Post_writable_byte_size_(size)`.

## Comentários

Para instalar esse retorno de chamada, defina-o no membro `alloc` de uma estrutura [PFMemoryHooks](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md) e passe a estrutura para [PFMemSetFunctions](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md) antes de chamar [PFInitialize](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfcore/functions/pfinitialize.md). Defina ao mesmo tempo o membro `free` como um retorno de chamada [PFMemFreeFunction](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md) correspondente. PFMemSetFunctions retorna `E_INVALIDARG` se apenas um dos dois membros estiver definido.

O retorno de chamada deve retornar um ponteiro para um bloco contíguo de memória do tamanho solicitado. O bloco deve permanecer válido até que o PlayFab o passe para o seu retorno de chamada PFMemFreeFunction. O PlayFab passa todos os ponteiros não nulos que esse retorno de chamada retorna para o seu retorno de chamada PFMemFreeFunction quando não precisa mais da memória.

Se a libHttpClient ainda não estiver inicializada quando você chamar PFMemSetFunctions, o PlayFab também instalará ganchos que roteiam as alocações da libHttpClient por meio desse retorno de chamada.

Para obter os ganchos em uso no momento, incluindo os ganchos padrão, chame [PFMemGetFunctions](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfmemgetfunctions.md).

O PlayFab pode chamar esse retorno de chamada de threads diferentes, portanto, torne-o thread-safe.

## Requisitos

**Cabeçalho:** PFPlatform.h

**Biblioteca:** PlayFabCore.lib

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Confira também

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

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

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


## Related topics

- [PFMemFreeFunction](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md)
- [PFMemoryHooks](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md)
- [Visão geral da API C de serviços - PFPlatform.h](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [HCMemAllocFunction](https://docs.xbox.com/pt-BR/reference/live/httpclient/httpclient/functions/hcmemallocfunction.md)
- [XblMemAllocFunction](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/xbox_live_global_c/functions/xblmemallocfunction.md)
