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

> Serializa una firma raíz de la versión 1.0 que se puede pasar a ID3D12Device::CreateRootSignature.

Serializa una firma raíz de la versión 1.0 que se puede pasar a [ID3D12Device::CreateRootSignature](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public).

## Sintaxis

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

### Parámetros

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

La descripción de la firma raíz, como un puntero a una estructura [D3D12\_ROOT\_SIGNATURE\_DESC](/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public).

*Version \[in]*\
Tipo: D3D\_ROOT\_SIGNATURE\_VERSION

Un valor de tipo [D3D\_ROOT\_SIGNATURE\_VERSION](/reference/graphics/d3d12/enums/d3d_root_signature_version_public) que especifica la versión de la firma raíz.

*ppBlob \[out]*\
Tipo: ID3DBlob \*\*

Un puntero a un bloque de memoria que recibe un puntero a la interfaz **ID3DBlob** que puede usar para acceder a la firma raíz serializada.

*ppErrorBlob \[out, optional]*\
Tipo: ID3DBlob \*\*

Un puntero a un bloque de memoria que recibe un puntero a la interfaz **ID3DBlob** que puede usar para acceder a los mensajes de error del serializador, o **NULL** si no hay errores.

### Valor devuelto

Tipo: HRESULT

Devuelve **S\_OK** si se realiza correctamente; de lo contrario, devuelve uno de los [códigos de retorno de Direct3D 12](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12-graphics-reference-returnvalues).

## Comentarios

Esta función ha sido reemplazada por [D3D12SerializeVersionedRootSignature](/reference/graphics/d3d12/functions/d3d12serializeversionedrootsignature_public) a partir de Windows 10 Anniversary Update (14393).

Si una aplicación genera mediante procedimientos una estructura de datos [D3D12\_ROOT\_SIGNATURE\_DESC](/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public), debe pasar un puntero a esta **D3D12\_ROOT\_SIGNATURE\_DESC** en una llamada a **D3D12SerializeRootSignature** para crear la forma serializada.
A continuación, la aplicación pasa la forma serializada a la que apunta <i>ppBlob</i> a [ID3D12Device::CreateRootSignature](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public).

Si un sombreador se ha creado con una firma raíz incluida, el sombreador compilado ya contendrá una firma raíz serializada. En este caso, pase el blob del sombreador compilado a [ID3D12Device::CreateRootSignature](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public) para obtener el objeto de firma raíz en tiempo de ejecución.

La signatura de función PFN\_D3D12\_SERIALIZE\_ROOT\_SIGNATURE se proporciona como typedef, de modo que pueda usar técnicas de vinculación dinámica ([GetProcAddress](https://learn.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getprocaddress)) en lugar de la vinculación estática.

#### Ejemplos

Crear una firma raíz vacía.

```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)));

```

Consulte el [código de ejemplo de la referencia de D3D12](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/notes-on-example-code).

<div class="code" />

## Requisitos

**Encabezado:** d3d12\_xs.h o d3d12\_x.h\
**Biblioteca:** d3d12\_xs.lib o d3d12\_x.lib\
**Plataformas compatibles**: consolas XBOX Series y familia XBOX One

## Consulte también

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

[Creación de una firma raíz](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/creating-a-root-signature)


## Related topics

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