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

> Crea un montón que se puede usar con recursos colocados y recursos reservados.

Crea un montón que se puede usar con recursos colocados y recursos reservados.

## Sintaxis

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

### Parámetros

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

Un puntero a una estructura constante **D3D12\_HEAP\_DESC** que describe el montón.

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

Una referencia al identificador único global (**GUID**) de la interfaz de montón que se va a devolver en *ppvHeap*.

Aunque *riidResource* suele ser el **GUID** de [ID3D12Heap](/reference/graphics/d3d12/interfaces/id3d12heap/id3d12heap_public), puede ser el **GUID** de cualquier interfaz. Si el objeto de recurso no admite la interfaz de este **GUID**, la creación produce un error **E\_NOINTERFACE**.

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

Un puntero opcional a un bloque de memoria que recibe el puntero de interfaz solicitado al objeto de montón creado.

*ppvHeap* puede ser `nullptr` para habilitar las pruebas de funcionalidades. Cuando *ppvHeap* es `nullptr`, no se crea ningún objeto y se devuelve **S\_FALSE** cuando *pDesc* es válido.

### Valor devuelto

Tipo: HRESULT

Si la función se ejecuta correctamente, devuelve **S\_OK**. De lo contrario, devuelve un [código de error](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 devuelto | Descripción                                     |
| -------------- | ----------------------------------------------- |
| E\_OUTOFMEMORY | No hay memoria suficiente para crear el montón. |

Consulte [códigos de retorno de Direct3D 12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues) para conocer otros valores devueltos posibles.

## Comentarios

**CreateHeap** crea un montón que se puede usar con recursos colocados y recursos reservados.

Antes de liberar la referencia final del montón, su aplicación debe asegurarse de que la GPU ya no leerá ni escribirá en este montón.

Un objeto de recurso colocado mantiene una referencia al montón en el que se crea; pero un recurso reservado no mantiene una referencia por cada asignación realizada a un montón.

## Requisitos

**Encabezado:** d3d12\_xs.h o d3d12\_x.h\
**Biblioteca:** d3d12\_xs.lib o d3d12\_x.lib\
**Plataformas compatibles**: consolas XBOX Series y familia XBOX One

## Consulte también

[ID3D12Device](/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)

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


## Related topics

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