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

# CreateHeap1 (consolas XBOX Series)

> Crea un montón (opcionalmente para una sesión protegida) que se puede usar con recursos colocados y recursos reservados.

Crea un montón (opcionalmente para una sesión protegida) que se puede usar con recursos colocados y recursos reservados. Consulte también [ID3D12Device::CreateHeap](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createheap_public).

## Sintaxis

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

### Parámetros

*pDesc \[in]*<br />Tipo: const D3D12\_HEAP\_DESC \*

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

*pProtectedSession \[in, optional]*<br />Tipo: ID3D12ProtectedResourceSession \*

Un puntero opcional a un objeto que representa una sesión para la protección de contenido. Si se proporciona, esta sesión indica que el montón debe estar protegido. Puede obtener un **ID3D12ProtectedResourceSession** llamando a [ID3D12Device4::CreateProtectedResourceSession](/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createprotectedresourcesession_public).

Un montón con una sesión protegida no se puede crear con la marca [D3D12\_HEAP\_FLAG\_SHARED\_CROSS\_ADAPTER](/reference/graphics/d3d12_x/enums/d3d12_heap_flags).

*riid \[in]*<br />Tipo: const IID &

Una referencia al identificador único global (**GUID**) de la interfaz del montón que se 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]*<br />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 permitir la comprobación de capacidades. 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

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

Antes de liberar la referencia final del montón, la 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<br />**Biblioteca:** d3d12\_xs.lib<br />**Plataformas compatibles**: consolas XBOX Series

## Consulte también


## Related topics

- [CreatePlacedResource2 (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
- [CreateReservedResource2 (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreateMetaCommand (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_createmetacommand_public.md)
- [CreateCommandList1 (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommandlist1_public.md)
- [CreateCommandQueue1 (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12device9/methods/id3d12device9_createcommandqueue1_public.md)
