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

# D3D12CreateVersionedRootSignatureDeserializer

> 生成一个接口，该接口可通过 GetUnconvertedRootSignatureDesc 返回反序列化的数据结构。

生成一个接口，该接口可通过 [GetUnconvertedRootSignatureDesc](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getunconvertedrootsignaturedesc_public) 返回反序列化的数据结构。

## 语法

```cpp theme={null}
HRESULT D3D12CreateVersionedRootSignatureDeserializer(
    LPCVOID pSrcData,
    SIZE_T SrcDataSizeInBytes,
    const IID & pRootSignatureDeserializerInterface,
    void  ppRootSignatureDeserializer
)
```

### 参数

*pSrcData \[in]*\
类型：LPCVOID

指向序列化根签名源数据的指针。

*SrcDataSizeInBytes \[in]*\
类型：SIZE\_T

<i>pSrcData</i> 指向的内存块的大小（字节数）。

*pRootSignatureDeserializerInterface \[in]*\
类型：const IID &

根签名反序列化器接口的全局唯一标识符 (**GUID**)。请参阅备注。

*ppRootSignatureDeserializer \[out]*\
类型：void \*\*

指向内存块的指针，用于接收指向根签名反序列化器的指针。

### 返回值

类型：HRESULT

如果成功则返回 **S\_OK**；否则返回 [Direct3D 12 返回代码](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12-graphics-reference-returnvalues)之一。

## 备注

如果应用程序已具有序列化的根签名，或者具有包含根签名的已编译着色器，并希望确定其布局定义，可以调用 **D3D12CreateVersionedRootSignatureDeserializer** 来生成 [ID3D12VersionedRootSignatureDeserializer](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/id3d12versionedrootsignaturedeserializer_public) 接口。[ID3D12VersionedRootSignatureDeserializer::GetRootSignatureDescAtVersion](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getrootsignaturedescatversion_public) 可返回反序列化后的数据结构
（[D3D12\_ROOT\_SIGNATURE\_DESC1](/reference/graphics/d3d12/structs/d3d12_root_signature_desc1_public)）。
**ID3D12VersionedRootSignatureDeserializer** 只拥有反序列化数据结构的内存生命周期。

可使用 \_\_uuidof() 宏获得根签名反序列化器接口的 **REFIID** 或 **GUID**。例如，\_\_uuidof([ID3D12VersionedRootSignatureDeserializer](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/id3d12versionedrootsignaturedeserializer_public)) 将获得根签名反序列化器接口的 **GUID**。

函数签名 PFN\_D3D12\_CREATE\_ROOT\_SIGNATURE\_DESERIALIZER 以 typedef 形式提供，以便您使用动态链接技术（[GetProcAddress](https://learn.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getprocaddress)），而无需静态链接。

此函数取代了 [D3D12CreateRootSignatureDeserializer](/reference/graphics/d3d12/functions/d3d12createrootsignaturedeserializer_public)。

## 要求

**头文件：** 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)

[根签名版本 1.1](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/root-signature-version-1-1)


## Related topics

- [D3D12CreateRootSignatureDeserializer](/zh-CN/reference/graphics/d3d12/functions/d3d12createrootsignaturedeserializer_public.md)
- [ID3D12VersionedRootSignatureDeserializer](/zh-CN/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/id3d12versionedrootsignaturedeserializer_public.md)
- [ID3D12RootSignatureDeserializer](/zh-CN/reference/graphics/d3d12/interfaces/id3d12rootsignaturedeserializer/id3d12rootsignaturedeserializer_public.md)
- [D3D12_VERSIONED_ROOT_SIGNATURE_DESC](/zh-CN/reference/graphics/d3d12/structs/d3d12_versioned_root_signature_desc_public.md)
- [GetRootSignatureDescAtVersion](/zh-CN/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getrootsignaturedescatversion_public.md)
