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

> Devolución de llamada a la que PlayFab llama para asignar un búfer de memoria de un tamaño determinado después de que un título instale enlaces de memoria personalizados con PFMemSetFunctions.

Una devolución de llamada a la que PlayFab llama cada vez que necesita asignar dinámicamente un búfer de memoria.

## Sintaxis

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

### Parámetros

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

El tamaño, en bytes, de la asignación que se va a realizar. Este valor nunca es cero.

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

Un identificador opaco de la categoría interna de la memoria que se está asignando. Omita este valor.

### Valor devuelto

Tipo: void\*

Un puntero a un bloque de memoria asignado del tamaño especificado, o `nullptr` si se produjo un error en la asignación. El encabezado anota el valor devuelto con `_Ret_maybenull_` y `_Post_writable_byte_size_(size)`.

## Comentarios

Para instalar esta devolución de llamada, establézcala en el miembro `alloc` de una estructura [PFMemoryHooks](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md) y pase la estructura a [PFMemSetFunctions](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md) antes de llamar a [PFInitialize](https://docs.xbox.com/es/services/playfab/api-references/c/pfcore/functions/pfinitialize.md). Establezca al mismo tiempo el miembro `free` en una devolución de llamada [PFMemFreeFunction](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md) correspondiente. PFMemSetFunctions devuelve `E_INVALIDARG` si solo se establece uno de los dos miembros.

La devolución de llamada debe devolver un puntero a un bloque de memoria contiguo del tamaño solicitado. El bloque debe seguir siendo válido hasta que PlayFab lo pase a la devolución de llamada PFMemFreeFunction. PlayFab pasa todos los punteros no null que devuelve esta devolución de llamada a la devolución de llamada PFMemFreeFunction cuando ya no necesita la memoria.

Si libHttpClient aún no está inicializado cuando llama a PFMemSetFunctions, PlayFab también instala enlaces que enrutan las asignaciones de libHttpClient a través de esta devolución de llamada.

Para obtener los enlaces que están en uso actualmente, incluidos los enlaces predeterminados, llame a [PFMemGetFunctions](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/functions/pfmemgetfunctions.md).

PlayFab puede llamar a esta devolución de llamada desde distintos subprocesos, por lo que debe ser segura para subprocesos.

## Requisitos

**Encabezado:** PFPlatform.h

**Biblioteca:** PlayFabCore.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

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

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

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


## Related topics

- [PFMemFreeFunction](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md)
- [PFMemoryHooks](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md)
- [Información general de la API de C de Services - PFPlatform.h](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [HCMemAllocFunction](https://docs.xbox.com/es/reference/live/httpclient/httpclient/functions/hcmemallocfunction.md)
- [XblMemAllocFunction](https://docs.xbox.com/es/reference/live/xsapi-c/xbox_live_global_c/functions/xblmemallocfunction.md)
