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

# XMemCreateWin32Heap

> XMemCreateWin32Heap

# XMemCreateWin32Heap

Cria um heap Win32.

## Sintaxe

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

### Parâmetros

*HeapFlags*   \_In\_\
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\_\
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`.

### 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](https://docs.xbox.com/pt-BR/reference/system/xerror/functions/xerrorcallback.md) atual do seu aplicativo.

## 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](https://docs.xbox.com/pt-BR/reference/system/xerror/functions/xerrorcallback.md) atual do seu aplicativo. Para obter mais informações sobre como lidar com casos de erro excepcionais, confira [XError](https://docs.xbox.com/pt-BR/reference/system/xerror/xerror_members.md).

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](https://docs.xbox.com/pt-BR/build/console-features/memory/system-memory-tooling.md).

### 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](https://docs.xbox.com/pt-BR/build/console-features/debugging-diagnostics/profiling-mode.md). 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](https://docs.xbox.com/pt-BR/reference/system/xmem/functions/xmemistoolsmemavailable.md) para verificar se a memória da partição de ferramentas está disponível no Modo de Criação de Perfil.

## Requisitos

**Cabeçalho:** xmem.h

**Biblioteca:** xmem.lib

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

## Confira também

[Memória](https://docs.xbox.com/pt-BR/build/console-features/memory/system-memory-overview.md)\
[XMem](https://docs.xbox.com/pt-BR/reference/system/xmem/xmem_members.md)


## Related topics

- [Retorno de chamada PHEAP_TRACK_ALLOC_ROUTINE](https://docs.xbox.com/pt-BR/reference/system/xmem/functions/pheap_track_alloc_routine.md)
- [Retorno de chamada PHEAP_TRACK_FREE_ROUTINE](https://docs.xbox.com/pt-BR/reference/system/xmem/functions/pheap_track_free_routine.md)
- [Retorno de chamada PHEAP_TRACK_REALLOC_ROUTINE](https://docs.xbox.com/pt-BR/reference/system/xmem/functions/pheap_track_realloc_routine.md)
- [XMemSetWin32HeapName](https://docs.xbox.com/pt-BR/reference/system/xmem/functions/xmemsetwin32heapname.md)
- [XMemGetWin32HeapName](https://docs.xbox.com/pt-BR/reference/system/xmem/functions/xmemgetwin32heapname.md)
