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

# D3D12SerializeRootSignature

> ID3D12Device::CreateRootSignature에 전달할 수 있는 루트 시그니처 버전 1.0을 직렬화합니다.

[ID3D12Device::CreateRootSignature](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public)에 전달할 수 있는 루트 시그니처 버전 1.0을 직렬화합니다.

## 구문

```cpp theme={null}
HRESULT D3D12SerializeRootSignature(
    const D3D12_ROOT_SIGNATURE_DESC  pRootSignature,
    D3D_ROOT_SIGNATURE_VERSION Version,
    ID3DBlob  ppBlob,
    ID3DBlob  ppErrorBlob
)
```

### 매개 변수

*pRootSignature \[in]*\
형식: const D3D12\_ROOT\_SIGNATURE\_DESC \*

[D3D12\_ROOT\_SIGNATURE\_DESC](/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public) 구조체에 대한 포인터로 표현된 루트 시그니처에 대한 설명입니다.

*Version \[in]*\
형식: D3D\_ROOT\_SIGNATURE\_VERSION

루트 시그니처의 버전을 지정하는 [D3D\_ROOT\_SIGNATURE\_VERSION](/reference/graphics/d3d12/enums/d3d_root_signature_version_public) 형식의 값입니다.

*ppBlob \[out]*\
형식: ID3DBlob \*\*

직렬화된 루트 시그니처에 액세스하는 데 사용할 수 있는 **ID3DBlob** 인터페이스에 대한 포인터를 받는 메모리 블록에 대한 포인터입니다.

*ppErrorBlob \[out, optional]*\
형식: ID3DBlob \*\*

직렬화 오류 메시지에 액세스하는 데 사용할 수 있는 **ID3DBlob** 인터페이스에 대한 포인터를 받는 메모리 블록에 대한 포인터이거나, 오류가 없는 경우 **NULL**입니다.

### 반환 값

형식: HRESULT

성공하면 **S\_OK**를 반환하고, 그렇지 않으면 [Direct3D 12 반환 코드](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12-graphics-reference-returnvalues) 중 하나를 반환합니다.

## 설명

이 함수는 Windows 10 Anniversary Update(14393)부터 [D3D12SerializeVersionedRootSignature](/reference/graphics/d3d12/functions/d3d12serializeversionedrootsignature_public)로 대체되었습니다.

애플리케이션이 프로그램적으로 [D3D12\_ROOT\_SIGNATURE\_DESC](/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public) 데이터 구조를 생성하는 경우, 직렬화된 형식을 만들기 위해 이 **D3D12\_ROOT\_SIGNATURE\_DESC**에 대한 포인터를 **D3D12SerializeRootSignature** 호출에 전달해야 합니다.
그런 다음 애플리케이션은 <i>ppBlob</i>이 가리키는 직렬화된 형식을 [ID3D12Device::CreateRootSignature](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public)에 전달합니다.

셰이더가 루트 시그니처를 포함하여 작성된 경우, 컴파일된 셰이더에는 이미 직렬화된 루트 시그니처가 포함되어 있습니다. 이 경우 컴파일된 셰이더 blob을 [ID3D12Device::CreateRootSignature](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public)에 전달하여 런타임 루트 시그니처 객체를 얻으세요.

함수 시그니처 PFN\_D3D12\_SERIALIZE\_ROOT\_SIGNATURE는 typedef로 제공되므로 정적 링크 대신 동적 링크 기법([GetProcAddress](https://learn.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getprocaddress))을 사용할 수 있습니다.

#### 예제

빈 루트 시그니처를 만듭니다.

```cpp theme={null}
CD3DX12_ROOT_SIGNATURE_DESC rootSignatureDesc;
rootSignatureDesc.Init(0, nullptr, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT);

ComPtr<ID3DBlob> signature;
ComPtr<ID3DBlob> error;
ThrowIfFailed(D3D12SerializeRootSignature(&rootSignatureDesc, D3D_ROOT_SIGNATURE_VERSION_1, &signature, &error));
ThrowIfFailed(m_device->CreateRootSignature(0, signature->GetBufferPointer(), signature->GetBufferSize(), IID_PPV_ARGS(&m_rootSignature)));

```

[D3D12 참조의 예제 코드](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/notes-on-example-code)를 참조하세요.

<div class="code" />

## 요구 사항

**헤더:** d3d12\_xs.h 또는 d3d12\_x.h\
**라이브러리:** d3d12\_xs.lib 또는 d3d12\_x.lib\
**지원 플랫폼**: XBOX Series 콘솔 및 XBOX One 제품군

## 함께 보기

[핵심 함수](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-functions)

[루트 시그니처 만들기](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/creating-a-root-signature)


## Related topics

- [D3D_ROOT_SIGNATURE_VERSION](/ko/reference/graphics/d3d12/enums/d3d_root_signature_version_public.md)
- [D3D12_ROOT_SIGNATURE_DESC](/ko/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public.md)
- [CreateRootSignature](/ko/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public.md)
- [D3D12_VERSIONED_ROOT_SIGNATURE_DESC](/ko/reference/graphics/d3d12/structs/d3d12_versioned_root_signature_desc_public.md)
- [ID3D12RootSignature](/ko/reference/graphics/d3d12/interfaces/id3d12rootsignature/id3d12rootsignature_public.md)
