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

# XMemAlloc

> XMemAlloc é um retorno de chamada de alocação de memória definido pelo aplicativo no GDK do XBOX que substitui o alocador padrão para os heaps do CRT e do sistema.

# XMemAlloc

Representa uma função de retorno de chamada de alocação de memória definida pelo aplicativo que substitui o alocador de memória padrão.

<a id="syntaxSection" />

## Sintaxe

```cpp theme={null}
PVOID XMemAlloc(  
         SIZE_T Size,  
         ULONGLONG Attributes  
)  
```

<a id="parametersSection" />

### Parâmetros

*Size*   \_In\_<br />Tipo: SIZE\_T

O tamanho do bloco de memória que está sendo solicitado, em bytes.

*Attributes*   \_In\_<br />Tipo: ULONGLONG

Os atributos da alocação de memória. Para obter mais informações, consulte [XALLOC\_ATTRIBUTES](/pt-BR/reference/system/xmem/structs/xalloc_attributes).

<a id="retvalSection" />

### Valor retornado

Tipo: PVOID

Um ponteiro para a memória alocada, se bem-sucedido; caso contrário, `NULL`.

<a id="remarksSection" />

## Comentários

Você pode implementar essa função para fornecer alocação de memória específica do aplicativo. A definição dessa função deve corresponder à definição da função [XMEMALLOC\_ROUTINE](/pt-BR/reference/system/xmem/functions/xmemalloc_routine). Da mesma forma, você também pode implementar a função [XMemFree](/pt-BR/reference/system/xmem/functions/xmemfree), correspondendo à definição da função [XMEMFREE\_ROUTINE](/pt-BR/reference/system/xmem/functions/xmemfree_routine), para fornecer desalocação de memória específica do aplicativo.

Depois de implementá-las, você poderá usar a função [XMemSetAllocationHooks](/pt-BR/reference/system/xmem/functions/xmemsetallocationhooks) para substituir as funções padrão de alocação e desalocação de memória por suas próprias funções `XMemAlloc` e `XMemFree` específicas do aplicativo. Para obter mais informações sobre `XMemAlloc`, consulte [Visão geral da memória gráfica para o GDK](/pt-BR/build/core-features/graphics/graphics-memory-overview).

<Note>
  O código-fonte da implementação padrão de **XMemAlloc** é instalado como parte do Microsoft Game Development Kit (GDK). Para obter mais informações, consulte a função `XMemAllocDefault` em `\GXDK\gameKit\Source\amd64\heap.c`.
</Note>

<Note>
  Se você implementar sua própria função **XMemAlloc**, é extremamente importante que você não faça chamadas ao driver do Direct3D 12 a partir dela. Isso ocorre porque a operação normal do driver pode levar à invocação de **XMemAlloc** sem proteção contra recursão. O requisito se estende a não executar operações finais de Release em objetos do Direct3D 12, pois isso pode levar a chamadas implícitas ao driver.
</Note>

<a id="requirementsSection" />

## Requisitos

**Cabeçalho:** xmem.h

**Biblioteca:** xmem.lib

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

<a id="seealsoSection" />

## Documentação conceitual

* [O que é o Microsoft Game Development Kit?](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/intro/introduction)

## Confira também

[Diagnóstico e rastreamento de memória](/pt-BR/build/console-features/memory/system-memory-diagnostics)<br />[XMem](/pt-BR/reference/system/xmem/xmem_members)<br />[XMemAllocDefault](/pt-BR/reference/system/xmem/functions/xmemallocdefault)


## Related topics

- [Xmemalloc routine](/ko/reference/system/xmem/functions/xmemalloc_routine.md)
- [XMEMALLOC_ROUTINE callback](/reference/system/xmem/functions/xmemalloc_routine.md)
- [XMEM_ALLOCATION_HOOKS](/reference/system/xmem/structs/xmem_allocation_hooks.md)
