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

# CreateCommandList

> CreateCommandList (Direct3D 12 en XBOX): crea una lista de comandos. Referencia de gráficos Direct3D 12 de XBOX.

Crea una lista de comandos.

## Sintaxis

```cpp theme={null}
HRESULT CreateCommandList(
    UINT nodeMask,
    D3D12_COMMAND_LIST_TYPE type,
    ID3D12CommandAllocator  pCommandAllocator,
    ID3D12PipelineState  pInitialState,
    const IID & riid,
    void  ppCommandList
)
```

### Parámetros

*nodeMask \[in]*\
Tipo: UINT

Para el funcionamiento con una sola GPU, establézcalo en cero. Si hay varios nodos de GPU, establezca un bit para identificar el nodo (el adaptador físico del dispositivo) para el que se va a crear la lista de comandos. Cada bit de la máscara corresponde a un único nodo. Solo debe establecerse un bit. Consulte también [Sistemas de varios adaptadores](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine).

*type \[in]*\
Tipo: D3D12\_COMMAND\_LIST\_TYPE

Especifica el tipo de lista de comandos que se va a crear.

*pCommandAllocator \[in]*\
Tipo: ID3D12CommandAllocator \*

Un puntero al objeto asignador de comandos a partir del cual el dispositivo crea listas de comandos.

*pInitialState \[in, optional]*\
Tipo: ID3D12PipelineState \*

Un puntero opcional al objeto de estado de canalización que contiene el estado de canalización inicial de la lista de comandos. Si es `nullptr`, el entorno de ejecución establece un estado de canalización inicial ficticio, de modo que los controladores no tengan que tratar con un estado indefinido. La sobrecarga de esto es baja, especialmente para una lista de comandos, en la que el costo total de grabar la lista de comandos probablemente eclipsa el costo de un único establecimiento de estado inicial. Por lo tanto, no establecer el parámetro de estado de canalización inicial tiene poco costo, si hacerlo resulta poco práctico.

En cambio, para las agrupaciones, podría tener más sentido intentar establecer el parámetro de estado inicial (dado que las agrupaciones probablemente sean más pequeñas en general y puedan reutilizarse con frecuencia).

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

Una referencia al identificador único global (**GUID**) de la interfaz de lista de comandos que se va a devolver en *ppCommandList*.

*ppCommandList \[out]*\
Tipo: void \*\*

Un puntero a un bloque de memoria que recibe un puntero a la interfaz [ID3D12CommandList](/reference/graphics/d3d12/interfaces/id3d12commandlist/id3d12commandlist_public) o [ID3D12GraphicsCommandList](/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/id3d12graphicscommandlist_xs) de la lista de comandos.

### 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 la lista de comandos. |

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

El dispositivo crea listas de comandos a partir del asignador de comandos.

## Ejemplos

El ejemplo [D3D12Bundles](https://learn.microsoft.com/en-us/windows/win32/direct3d12/working-samples) usa **ID3D12Device::CreateCommandList** de la siguiente manera.

Cree los objetos de canalización.

```cpp theme={null}
ComPtr<ID3D12CommandAllocator> m_commandAllocator;
ComPtr<ID3D12GraphicsCommandList> m_commandList;
```

Cree un asignador de comandos.

```cpp theme={null}
ThrowIfFailed(m_device->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&m_commandAllocator)));
```

Creación de la lista de comandos directa.

```cpp theme={null}
ThrowIfFailed(m_device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, m_commandAllocator.Get(), nullptr, IID_PPV_ARGS(&m_commandList)));
```

Consulte el [código de ejemplo en la referencia de D3D12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/notes-on-example-code).

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

[ID3D12GraphicsCommandList::Reset](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_reset_public)


## Related topics

- [CreateCommandList1 (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommandlist1_public.md)
- [CreateCommandAllocator](/es/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommandallocator_public.md)
- [CreatePlacedResource](/es/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public.md)
- [D3D12_CPU_DESCRIPTOR_HANDLE](/es/reference/graphics/d3d12/structs/d3d12_cpu_descriptor_handle_public.md)
- [CreateCommandQueue](/es/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommandqueue_public.md)
