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

> Generates an interface that can return the deserialized data structure, via GetUnconvertedRootSignatureDesc.

Generates an interface that can return the deserialized data structure, via [GetUnconvertedRootSignatureDesc](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getunconvertedrootsignaturedesc_public).

## Syntax

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

### Parameters

*pSrcData \[in]*\
Type: LPCVOID

A pointer to the source data for the serialized root signature.

*SrcDataSizeInBytes \[in]*\
Type: SIZE\_T

The size, in bytes, of the block of memory that <i>pSrcData</i> points to.

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

The globally unique identifier (**GUID**) for the root signature deserializer interface. See remarks.

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

A pointer to a memory block that receives a pointer to the root signature deserializer.

### Return value

Type: HRESULT

Returns **S\_OK** if successful; otherwise, returns one of the [Direct3D 12 Return Codes](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12-graphics-reference-returnvalues).

## Remarks

If an application has a serialized root signature already or has a compiled shader that contains a root signature and wants to determine the layout definition, it can call **D3D12CreateVersionedRootSignatureDeserializer** to generate a [ID3D12VersionedRootSignatureDeserializer](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/id3d12versionedrootsignaturedeserializer_public) interface. [ID3D12VersionedRootSignatureDeserializer::GetRootSignatureDescAtVersion](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getrootsignaturedescatversion_public) can return the deserialized data structure
([D3D12\_ROOT\_SIGNATURE\_DESC1](/reference/graphics/d3d12/structs/d3d12_root_signature_desc1_public)).
**ID3D12VersionedRootSignatureDeserializer** just owns the lifetime of the memory for the deserialized data structure.

The **REFIID**, or **GUID**, of the interface to the root signature deserializer can be obtained by using the \_\_uuidof() macro. For example, \_\_uuidof([ID3D12VersionedRootSignatureDeserializer](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/id3d12versionedrootsignaturedeserializer_public)) will get the **GUID** of the interface to a root signature deserializer.

The function signature PFN\_D3D12\_CREATE\_ROOT\_SIGNATURE\_DESERIALIZER is provided as a typedef, so that you can use dynamic linking techniques ([GetProcAddress](https://learn.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getprocaddress)) instead of statically linking.

This function supercedes [D3D12CreateRootSignatureDeserializer](/reference/graphics/d3d12/functions/d3d12createrootsignaturedeserializer_public).

## Requirements

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

[Core Functions](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-functions)

[Creating a Root Signature](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/creating-a-root-signature)

[Root Signature Version 1.1](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/root-signature-version-1-1)


## Related topics

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