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

> Cria um layout de assinatura raiz.

Cria um layout de assinatura raiz.

## Sintaxe

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

### Parâmetros

*nodeMask \[in]*\
Tipo: UINT

Para operação com uma única GPU, defina como zero. Se houver vários nós de GPU, defina bits para identificar os nós (os adaptadores físicos do dispositivo) aos quais a assinatura raiz deve ser aplicada.
Cada bit na máscara corresponde a um único nó.
Consulte [Sistemas com vários adaptadores](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine).

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

Um ponteiro para os dados de origem da assinatura serializada.

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

O tamanho, em bytes, do bloco de memória para o qual <i>pBlobWithRootSignature</i> aponta.

*riid*\
Tipo: const IID &

O identificador global exclusivo (**GUID**) da interface da assinatura raiz. Confira Comentários.
Um parâmetro de entrada.

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

Um ponteiro para um bloco de memória que recebe um ponteiro para a assinatura raiz.

### Valor retornado

Tipo: HRESULT

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

Este método retorna **E\_INVALIDARG** se o blob para o qual <i>pBlobWithRootSignature</i> aponta for inválido.

## Comentários

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 esse **D3D12\_ROOT\_SIGNATURE\_DESC** em uma chamada para [D3D12SerializeRootSignature](/pt-BR/reference/graphics/d3d12/functions/d3d12serializerootsignature_public) para criar a forma serializada.
Em seguida, o aplicativo passa a forma serializada para <i>pBlobWithRootSignature</i> em uma chamada para **ID3D12Device::CreateRootSignature**.

O **REFIID**, ou **GUID**, da interface do layout de assinatura raiz pode ser obtido usando a macro \_\_uuidof().
Por exemplo, \_\_uuidof([ID3D12RootSignature](/pt-BR/reference/graphics/d3d12/interfaces/id3d12rootsignature/id3d12rootsignature_public)) obterá o **GUID** da interface de uma assinatura raiz.

#### Exemplos

O exemplo [D3D12HelloTriangle](https://learn.microsoft.com/en-us/windows/win32/direct3d12/working-samples) usa **ID3D12Device::CreateRootSignature** da seguinte maneira:

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

```

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

[ID3D12Device](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

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