> ## 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 on XBOX) — コマンド リストを作成します。XBOX Direct3D 12 グラフィックス リファレンス。

コマンド リストを作成します。

## 構文

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

### パラメーター

*nodeMask \[in]*\
型: UINT

シングル GPU 動作の場合は、これを 0 に設定します。GPU ノードが複数ある場合は、コマンド リストを作成するノード (デバイスの物理アダプター) を識別するビットを設定します。マスク内の各ビットは、単一のノードに対応します。設定するビットは 1 つだけである必要があります。[マルチアダプター システム](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine) も参照してください。

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

作成するコマンド リストのタイプを指定します。

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

デバイスがコマンド リストを作成する元となるコマンド アロケーター オブジェクトへのポインター。

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

コマンド リストの初期パイプライン状態を含むパイプライン ステート オブジェクトへの省略可能なポインター。`nullptr` の場合、ランタイムはダミーの初期パイプライン状態を設定するため、ドライバーは未定義の状態を処理する必要がありません。このオーバーヘッドは小さく、特にコマンド リストの場合、コマンド リスト全体の記録コストが単一の初期状態設定コストをはるかに上回る可能性が高いです。したがって、初期パイプライン状態パラメーターを設定しないことによるコストはわずかであり、設定することが不便な場合はそうする必要はありません。

一方、バンドルの場合は、初期状態パラメーターを設定してみる方が理にかなっているかもしれません (バンドルは全体的に小さく、頻繁に再利用できる可能性が高いため)。

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

*ppCommandList* で返されるコマンド リスト インターフェイスのグローバル一意識別子 (**GUID**) への参照。

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

コマンド リストの [ID3D12CommandList](/reference/graphics/d3d12/interfaces/id3d12commandlist/id3d12commandlist_public) または [ID3D12GraphicsCommandList](/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/id3d12graphicscommandlist_xs) インターフェイスへのポインターを受け取るメモリ ブロックへのポインター。

### 戻り値

型: HRESULT

関数が成功した場合、**S\_OK** を返します。それ以外の場合は、[**HRESULT**](https://learn.microsoft.com/en-us/windows/desktop/com/structure-of-com-error-codes) [エラー コード](https://learn.microsoft.com/en-us/windows/win32/com/com-error-codes-10) を返します。

| 戻り値            | 説明                           |
| -------------- | ---------------------------- |
| E\_OUTOFMEMORY | コマンド リストを作成するのに十分なメモリがありません。 |

その他の戻り値については、[Direct3D 12 の戻りコード](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues) を参照してください。

## 解説

デバイスはコマンド アロケーターからコマンド リストを作成します。

## 例

[D3D12Bundles](https://learn.microsoft.com/en-us/windows/win32/direct3d12/working-samples) サンプルでは、**ID3D12Device::CreateCommandList** を次のように使用しています。

パイプライン オブジェクトを作成します。

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

コマンド アロケーターを作成します。

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

ダイレクト コマンド リストの作成。

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

[D3D12 リファレンスのサンプル コード](https://learn.microsoft.com/en-us/windows/win32/direct3d12/notes-on-example-code) を参照してください。

## 要件

**ヘッダー:** d3d12\_xs.h または d3d12\_x.h\
**ライブラリ:** d3d12\_xs.lib または d3d12\_x.lib\
**サポートされているプラットフォーム**: XBOX Series 本体および XBOX One ファミリ

## 関連項目

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

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


## Related topics

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