> ## 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 uma assinatura raiz versão 1.0 que pode ser passada para ID3D12Device::CreateRootSignature.

Serializa uma assinatura raiz versão 1.0 que pode ser passada para [ID3D12Device::CreateRootSignature](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public).

## Sintaxe

```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 \*

A descrição da assinatura raiz, como um ponteiro para uma estrutura [D3D12\_ROOT\_SIGNATURE\_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public).

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

Um valor do tipo [D3D\_ROOT\_SIGNATURE\_VERSION](/pt-BR/reference/graphics/d3d12/enums/d3d_root_signature_version_public) que especifica a versão da assinatura raiz.

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

Um ponteiro para um bloco de memória que recebe um ponteiro para a interface **ID3DBlob** que você pode usar para acessar a assinatura raiz serializada.

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

Um ponteiro para um bloco de memória que recebe um ponteiro para a interface **ID3DBlob** que você pode usar para acessar mensagens de erro do serializador, ou **NULL** se não houver erros.

### Valor retornado

Tipo: HRESULT

Retorna **S\_OK** se tiver êxito; caso contrário, retorna um dos [Códigos de retorno do Direct3D 12](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12-graphics-reference-returnvalues).

## Comentários

Esta função foi substituída por [D3D12SerializeVersionedRootSignature](/pt-BR/reference/graphics/d3d12/functions/d3d12serializeversionedrootsignature_public) a partir da Atualização de Aniversário do Windows 10 (14393).

Se um aplicativo gerar proceduralmente uma estrutura de dados [D3D12\_ROOT\_SIGNATURE\_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public), ele deverá passar um ponteiro para essa **D3D12\_ROOT\_SIGNATURE\_DESC** em uma chamada para **D3D12SerializeRootSignature** para criar a forma serializada.
Em seguida, o aplicativo passa a forma serializada para a qual <i>ppBlob</i> aponta para [ID3D12Device::CreateRootSignature](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public).

Se um sombreador tiver sido criado com uma assinatura raiz, o sombreador compilado já conterá uma assinatura raiz serializada. Nesse caso, passe o blob do sombreador compilado para [ID3D12Device::CreateRootSignature](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public) para obter o objeto de assinatura raiz de tempo de execução.

A assinatura de função PFN\_D3D12\_SERIALIZE\_ROOT\_SIGNATURE é fornecida como um typedef, para que você possa usar técnicas de vinculação dinâmica ([GetProcAddress](https://learn.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getprocaddress)) em vez de vinculação estática.

#### Exemplos

Crie uma assinatura raiz vazia.

```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 o [Código de exemplo na referência do D3D12](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/notes-on-example-code).

<div class="code" />

## Requisitos

**Cabeçalho:** d3d12\_xs.h ou d3d12\_x.h\
**Biblioteca:** d3d12\_xs.lib ou d3d12\_x.lib\
**Plataformas com suporte**: consoles XBOX Series e família XBOX One

## Confira também

[Funções principais](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-functions)

[Criando uma assinatura raiz](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/creating-a-root-signature)


## Related topics

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