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

# CreateHeap

> Cria um heap que pode ser usado com recursos posicionados e recursos reservados.

Cria um heap que pode ser usado com recursos posicionados e recursos reservados.

## Sintaxe

```cpp theme={null}
HRESULT CreateHeap(
    const D3D12_HEAP_DESC  pDesc,
    const IID & riid,
    void  ppvHeap
)
```

### Parâmetros

*pDesc \[in]*\
Tipo: const D3D12\_HEAP\_DESC \*

Um ponteiro para uma estrutura constante **D3D12\_HEAP\_DESC** que descreve o heap.

*riid \[in]*\
Tipo: const IID &

Uma referência ao identificador global exclusivo (**GUID**) da interface do heap a ser retornada em *ppvHeap*.

Embora *riidResource* seja mais comumente o **GUID** de [ID3D12Heap](/pt-BR/reference/graphics/d3d12/interfaces/id3d12heap/id3d12heap_public), ele pode ser o **GUID** de qualquer interface. Se o objeto de recurso não der suporte à interface desse **GUID**, a criação falhará com **E\_NOINTERFACE**.

*ppvHeap \[out, optional]*\
Tipo: void \*\*

Um ponteiro opcional para um bloco de memória que recebe o ponteiro de interface solicitado para o objeto de heap criado.

*ppvHeap* pode ser `nullptr`, para permitir o teste de funcionalidades. Quando *ppvHeap* é `nullptr`, nenhum objeto é criado e **S\_FALSE** é retornado quando *pDesc* é válido.

### Valor retornado

Tipo: HRESULT

Se a função for bem-sucedida, ela retornará **S\_OK**. Caso contrário, retornará um [código de erro](https://learn.microsoft.com/en-us/windows/win32/com/com-error-codes-10) [**HRESULT**](https://learn.microsoft.com/en-us/windows/desktop/com/structure-of-com-error-codes).

| Valor retornado | Descrição |
| - | - |
| E\_OUTOFMEMORY | Não há memória suficiente para criar o heap. |

Confira [Códigos de retorno do Direct3D 12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues) para outros valores de retorno possíveis.

## Comentários

**CreateHeap** cria um heap que pode ser usado com recursos posicionados e recursos reservados.

Antes de liberar a referência final ao heap, seu aplicativo deve garantir que a GPU não lerá nem gravará mais nesse heap.

Um objeto de recurso posicionado mantém uma referência ao heap no qual foi criado; mas um recurso reservado não mantém uma referência para cada mapeamento feito em um heap.

## Requisitos

**Cabeçalho:** d3d12\_xs.h ou d3d12\_x.h\
**Biblioteca:** d3d12\_xs.lib ou d3d12\_x.lib\
**Plataformas com suporte**: consoles XBOX Series e família XBOX One

## Confira também

[ID3D12Device](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)

[Heaps compartilhados](https://learn.microsoft.com/en-us/windows/win32/direct3d12/shared-heaps)


## Related topics

- [CreateHeap1 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createheap1_public.md)
- [D3D12_FEATURE_DATA_EXISTING_HEAPS](/pt-BR/reference/graphics/d3d12/structs/d3d12_feature_data_existing_heaps_public.md)
- [CreateDescriptorHeap](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createdescriptorheap_public.md)
- [CreateQueryHeap](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createqueryheap_public.md)
- [ApuCreateHeap](/pt-BR/reference/audio/apu/functions/apucreateheap.md)
