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

# XMemCreateWin32Heap

> XMemCreateWin32Heap

# XMemCreateWin32Heap

Cria um heap Win32.

<a id="syntaxSection" />

## Sintaxe

```cpp theme={null}
HANDLE XMemCreateWin32Heap(  
         ULONGLONG HeapFlags,  
         PVOID baseAddress  
)  
```

<a id="parametersSection" />

### Parâmetros

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

Indica a origem da memória para o heap a ser criado.

| Sinalizador | Descrição |
| - | - |
| `XMEM_HEAP_DEFAULT` | A memória do heap é alocada da partição do título. Você deve especificar `NULL` para *baseAddress* ao usar esse sinalizador. |
| `XMEM_HEAP_TOOL` | A memória do heap é alocada da partição de ferramentas, se a partição estiver disponível. Você deve especificar `NULL` para *baseAddress* ao usar esse sinalizador. |
| `XMEM_HEAP_INPLACE` | O bloco de memória especificado em *baseAddress* é usado pelo heap. Você deve especificar um endereço em memória confirmada para *baseAddress* ao usar esse sinalizador. |
| `XMEM_HEAP_64K_PAGES` | A memória do heap é alocada usando páginas de 64 KB em vez de páginas de 2 MB. |

*baseAddress*   \_In\_<br />Tipo: PVOID

O endereço base para a alocação do heap in-loco. Se `HeapFlags` estiver definido como `XMEM_HEAP_INPLACE`, esse valor deverá apontar para um endereço em memória confirmada alinhado a um limite de 4 KB; caso contrário, esse valor deverá ser definido como `NULL`.

<a id="retvalSection" />

### Valor retornado

Tipo: HANDLE

Retorna um identificador para o heap Win32 criado, se tiver êxito; caso contrário, retorna `NULL`. Se estiverem disponíveis, informações de erro estendidas serão fornecidas ao retorno de chamada [XErrorCallback](/pt-BR/reference/system/xerror/functions/xerrorcallback) atual do seu aplicativo.

<a id="remarksSection" />

## Comentários

Essa função cria um heap Win32, alocando memória para o heap a partir da origem e do endereço base indicados por `HeapFlags` e `baseAddress`, respectivamente. Se `XMEM_HEAP_INPLACE` não tiver sido especificado em `HeapFlags` quando o heap foi criado, o heap será apoiado por páginas de 2 MB (ou páginas de 64 KB se XMEM\_HEAP\_64K\_PAGES for especificado). Se ocorrer um erro ao tentar criar um heap Win32, esse método retornará `NULL` e, se disponível, o erro será relatado ao retorno de chamada [XErrorCallback](/pt-BR/reference/system/xerror/functions/xerrorcallback) atual do seu aplicativo. Para obter mais informações sobre como lidar com casos de erro excepcionais, confira [XError](/pt-BR/reference/system/xerror/xerror_members).

Para obter mais informações sobre como configurar e acessar a memória, confira [Configurando a memória para seu título e kit de desenvolvimento](/pt-BR/build/console-features/memory/system-memory-tooling).

<a id="remarks_tooling" />

### Alocando memória de ferramentas

Se `XMEM_HEAP_TOOL` for especificado em `HeapFlags`, a função tentará alocar memória da partição de ferramentas para criar o heap Win32, dependendo das configurações do Modo de Criação de Perfil e do Modo de Iteração:

* Se o Modo de Iteração estiver desabilitado e o Modo de Criação de Perfil estiver habilitado, a função tentará alocar a quantidade de memória solicitada da partição de ferramentas. Se a quantidade solicitada não estiver disponível, ocorrerá um erro.
* Se o Modo de Iteração estiver desabilitado e o Modo de Criação de Perfil estiver desabilitado, ocorrerá um erro.
* Se o Modo de Iteração estiver habilitado, a função tentará alocar a quantidade de memória solicitada da partição do título. Se a quantidade solicitada não estiver disponível, ocorrerá um erro.

Quando o Modo de Criação de Perfil está habilitado, memória extra é disponibilizada para seu título e pode ser usada durante o desenvolvimento para qualquer coisa, desde ferramentas do mecanismo de jogo até ativos de jogo não otimizados. Para obter mais informações sobre o Modo de Criação de Perfil, confira [Modo de Criação de Perfil](/pt-BR/build/console-features/debugging-diagnostics/profiling-mode). A partição de ferramentas não fica disponível quando o Modo de Iteração está habilitado.

Você pode usar a função [XMemIsToolsMemAvailable](/pt-BR/reference/system/xmem/functions/xmemistoolsmemavailable) para verificar se a memória da partição de ferramentas está disponível no Modo de Criação de Perfil.

<a id="requirementsSection" />

## Requisitos

**Cabeçalho:** xmem.h

**Biblioteca:** xmem.lib

**Plataformas com suporte:** consoles da família XBOX One e consoles XBOX Series

<a id="seealsoSection" />

## Confira também

[Memória](/pt-BR/build/console-features/memory/system-memory-overview)<br />[XMem](/pt-BR/reference/system/xmem/xmem_members)


## Related topics

- [XMemCreateWin32Heap](/reference/system/xmem/functions/xmemcreatewin32heap.md)
- [PHEAP_TRACK_ALLOC_ROUTINE callback](/reference/system/xmem/functions/pheap_track_alloc_routine.md)
- [PHEAP_TRACK_FREE_ROUTINE callback](/reference/system/xmem/functions/pheap_track_free_routine.md)
- [PHEAP_TRACK_REALLOC_ROUTINE callback](/reference/system/xmem/functions/pheap_track_realloc_routine.md)
