> ## 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 sur XBOX) : crée une liste de commandes. Référence graphique Direct3D 12 pour XBOX.

Crée une liste de commandes.

## Syntaxe

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

### Paramètres

*nodeMask \[in]*\
Type : UINT

Pour un fonctionnement avec un seul GPU, définissez cette valeur sur zéro. S'il existe plusieurs nœuds GPU, définissez un bit pour identifier le nœud (l'adaptateur physique de l'appareil) pour lequel créer la liste de commandes. Chaque bit du masque correspond à un seul nœud. Un seul bit doit être défini. Consultez également [Systèmes multi-adaptateurs](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine).

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

Spécifie le type de liste de commandes à créer.

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

Pointeur vers l'objet allocateur de commandes à partir duquel l'appareil crée des listes de commandes.

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

Pointeur facultatif vers l'objet d'état de pipeline qui contient l'état de pipeline initial de la liste de commandes. S'il vaut `nullptr`, le runtime définit un état de pipeline initial factice, afin que les pilotes n'aient pas à gérer un état non défini. Le surcoût est faible, en particulier pour une liste de commandes, pour laquelle le coût global d'enregistrement de la liste de commandes dépasse probablement de loin le coût de la définition d'un seul état initial. Ne pas définir le paramètre d'état de pipeline initial a donc peu de coût, si cela est peu pratique.

Pour les bundles, en revanche, il peut être plus judicieux d'essayer de définir le paramètre d'état initial (car les bundles sont généralement plus petits et peuvent être réutilisés fréquemment).

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

Référence à l'identificateur global unique (**GUID**) de l'interface de liste de commandes à renvoyer dans *ppCommandList*.

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

Pointeur vers un bloc de mémoire qui reçoit un pointeur vers l'interface [ID3D12CommandList](/fr/reference/graphics/d3d12/interfaces/id3d12commandlist/id3d12commandlist_public) ou [ID3D12GraphicsCommandList](/fr/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/id3d12graphicscommandlist_xs) de la liste de commandes.

### Valeur renvoyée

Type : HRESULT

Si la fonction réussit, elle renvoie **S\_OK**. Sinon, elle renvoie un [code d'erreur](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).

| Valeur renvoyée | Description |
| - | - |
| E\_OUTOFMEMORY | La mémoire est insuffisante pour créer la liste de commandes. |

Consultez [Codes de retour Direct3D 12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues) pour connaître les autres valeurs de retour possibles.

## Remarques

L'appareil crée des listes de commandes à partir de l'allocateur de commandes.

## Exemples

L'exemple [D3D12Bundles](https://learn.microsoft.com/en-us/windows/win32/direct3d12/working-samples) utilise **ID3D12Device::CreateCommandList** comme suit.

Créez les objets de pipeline.

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

Créez un allocateur de commandes.

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

Création de la liste de commandes directe.

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

Consultez [Exemple de code dans la référence D3D12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/notes-on-example-code).

## Configuration requise

**En-tête :** d3d12\_xs.h ou d3d12\_x.h\
**Bibliothèque :** d3d12\_xs.lib ou d3d12\_x.lib\
**Plateformes prises en charge** : consoles XBOX Series et famille XBOX One

## Voir aussi

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

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


## Related topics

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