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

# CreateRootSignature

> Crée une disposition de signature racine.

Crée une disposition de signature racine.

## Syntaxe

```cpp theme={null}
HRESULT CreateRootSignature(
    UINT nodeMask,
    const void  pBlobWithRootSignature,
    SIZE_T blobLengthInBytes,
    const IID & riid,
    void  ppvRootSignature
)
```

### Paramètres

*nodeMask \[in]*\
Type : UINT

Pour un fonctionnement avec un seul GPU, définissez cette valeur sur zéro. S'il existe plusieurs nœuds GPU, définissez des bits pour identifier les nœuds (les adaptateurs physiques de l'appareil) auxquels la signature racine doit s'appliquer.
Chaque bit du masque correspond à un seul nœud.
Reportez-vous à [Systèmes multi-adaptateurs](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine).

*pBlobWithRootSignature \[in]*\
Type : const void \*

Pointeur vers les données sources de la signature sérialisée.

*blobLengthInBytes \[in]*\
Type : **[SIZE\_T](https://learn.microsoft.com/en-us/windows/win32/WinProg/windows-data-types)**

Taille, en octets, du bloc de mémoire vers lequel pointe <i>pBlobWithRootSignature</i>.

*riid*\
Type : const IID &

Identificateur global unique (**GUID**) de l'interface de signature racine. Consultez Remarques.
Paramètre d'entrée.

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

Pointeur vers un bloc de mémoire qui reçoit un pointeur vers la signature racine.

### 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/win32/direct3d12/d3d12-graphics-reference-returnvalues).

Cette méthode retourne **E\_INVALIDARG** si le blob vers lequel pointe <i>pBlobWithRootSignature</i> n'est pas valide.

## Remarques

Si une application génère de façon procédurale une structure de données [D3D12\_ROOT\_SIGNATURE\_DESC](/fr/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public), elle doit transmettre un pointeur vers cette **D3D12\_ROOT\_SIGNATURE\_DESC** lors d'un appel à [D3D12SerializeRootSignature](/fr/reference/graphics/d3d12/functions/d3d12serializerootsignature_public) pour obtenir la forme sérialisée.
L'application transmet ensuite la forme sérialisée à <i>pBlobWithRootSignature</i> lors d'un appel à **ID3D12Device::CreateRootSignature**.

Le **REFIID**, ou **GUID**, de l'interface de la disposition de signature racine peut être obtenu à l'aide de la macro \_\_uuidof().
Par exemple, \_\_uuidof([ID3D12RootSignature](/fr/reference/graphics/d3d12/interfaces/id3d12rootsignature/id3d12rootsignature_public)) obtient le **GUID** de l'interface d'une signature racine.

#### Exemples

L'exemple [D3D12HelloTriangle](https://learn.microsoft.com/en-us/windows/win32/direct3d12/working-samples) utilise **ID3D12Device::CreateRootSignature** comme suit :

Créez 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)));

```

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

[ID3D12Device](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [D3D12SerializeRootSignature](/fr/reference/graphics/d3d12/functions/d3d12serializerootsignature_public.md)
- [D3D12CreateRootSignatureDeserializer](/fr/reference/graphics/d3d12/functions/d3d12createrootsignaturedeserializer_public.md)
- [D3D12CreateVersionedRootSignatureDeserializer](/fr/reference/graphics/d3d12/functions/d3d12createversionedrootsignaturedeserializer_public.md)
- [CreateCommandSignature](/fr/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommandsignature_public.md)
- [D3D_ROOT_SIGNATURE_VERSION](/fr/reference/graphics/d3d12/enums/d3d_root_signature_version_public.md)
