> ## 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 (XBOX의 Direct3D 12) — 명령 목록을 만듭니다. 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 노드가 있는 경우, 명령 목록을 만들 노드(디바이스의 물리적 어댑터)를 식별하는 비트를 설정하세요. 마스크의 각 비트는 하나의 노드에 해당합니다. 하나의 비트만 설정해야 합니다. [멀티 어댑터 시스템](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 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommandlist1_public.md)
- [CreateCommandAllocator](/ko/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommandallocator_public.md)
- [CreatePlacedResource](/ko/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public.md)
- [D3D12_CPU_DESCRIPTOR_HANDLE](/ko/reference/graphics/d3d12/structs/d3d12_cpu_descriptor_handle_public.md)
- [CreateCommandQueue](/ko/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommandqueue_public.md)
