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

> Sérialise une signature racine version 1.0 qui peut être passée à ID3D12Device::CreateRootSignature.

Sérialise une signature racine version 1.0 qui peut être passée à [ID3D12Device::CreateRootSignature](/fr-CA/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public).

## Syntaxe

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

### Paramètres

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

Description de la signature racine, sous forme de pointeur vers une structure [D3D12\_ROOT\_SIGNATURE\_DESC](/fr-CA/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public).

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

Valeur de type [D3D\_ROOT\_SIGNATURE\_VERSION](/fr-CA/reference/graphics/d3d12/enums/d3d_root_signature_version_public) qui spécifie la version de la signature racine.

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

Pointeur vers un bloc de mémoire qui reçoit un pointeur vers l'interface **ID3DBlob** que vous pouvez utiliser pour accéder à la signature racine sérialisée.

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

Pointeur vers un bloc de mémoire qui reçoit un pointeur vers l'interface **ID3DBlob** que vous pouvez utiliser pour accéder aux messages d'erreur du sérialiseur, ou **NULL** s'il n'y a aucune erreur.

### Valeur de retour

Type : HRESULT

Retourne **S\_OK** en cas de réussite; sinon, retourne l'un des [codes de retour Direct3D 12](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12-graphics-reference-returnvalues).

## Remarques

Cette fonction a été remplacée par [D3D12SerializeVersionedRootSignature](/fr-CA/reference/graphics/d3d12/functions/d3d12serializeversionedrootsignature_public) depuis la mise à jour anniversaire de Windows 10 (14393).

Si une application génère de manière procédurale une structure de données [D3D12\_ROOT\_SIGNATURE\_DESC](/fr-CA/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public), elle doit passer un pointeur vers cette **D3D12\_ROOT\_SIGNATURE\_DESC** dans un appel à **D3D12SerializeRootSignature** pour produire la forme sérialisée.
L'application passe ensuite la forme sérialisée vers laquelle pointe <i>ppBlob</i> à [ID3D12Device::CreateRootSignature](/fr-CA/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public).

Si un nuanceur a été créé avec une signature racine intégrée, le nuanceur compilé contiendra déjà une signature racine sérialisée. Dans ce cas, passez le blob du nuanceur compilé à [ID3D12Device::CreateRootSignature](/fr-CA/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createrootsignature_public) pour obtenir l'objet de signature racine du runtime.

La signature de fonction PFN\_D3D12\_SERIALIZE\_ROOT\_SIGNATURE est fournie sous forme de typedef, afin que vous puissiez utiliser des techniques de liaison dynamique ([GetProcAddress](https://learn.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getprocaddress)) au lieu d'une liaison statique.

#### Exemples

Créer une signature racine vide.

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

```

Reportez-vous à l'[exemple de code dans la référence D3D12](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/notes-on-example-code).

<div class="code" />

## Configuration requise

**En-tête :** d3d12\_xs.h ou d3d12\_x.h\
**Bibliothèque :** d3d12\_xs.lib ou d3d12\_x.lib\
**Plateformes prises en charge :** consoles XBOX Series et famille XBOX One

## Voir aussi

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

[Création d'une signature racine](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/creating-a-root-signature)


## Related topics

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