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

> Crea un diseño de firma raíz.

Crea un diseño de firma raíz.

## Sintaxis

```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 el funcionamiento con una sola GPU, establézcalo en cero. Si hay varios nodos de GPU, establezca los bits para identificar los nodos (los adaptadores físicos del dispositivo) a los que se aplicará la firma raíz.
Cada bit de la máscara corresponde a un único nodo.
Consulte [Sistemas de varios adaptadores](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine).

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

Un puntero a los datos de origen de la firma serializada.

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

El tamaño, en bytes, del bloque de memoria al que apunta <i>pBlobWithRootSignature</i>.

*riid*\
Tipo: const IID &

El identificador único global (**GUID**) de la interfaz de la firma raíz. Consulte Comentarios.
Es un parámetro de entrada.

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

Un puntero a un bloque de memoria que recibe un puntero a la firma raíz.

### Valor devuelto

Tipo: HRESULT

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

Este método devuelve **E\_INVALIDARG** si el blob al que apunta <i>pBlobWithRootSignature</i> no es válido.

## Comentarios

Si una aplicación genera de forma procedimental 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](/reference/graphics/d3d12/functions/d3d12serializerootsignature_public) para crear la forma serializada.
A continuación, la aplicación pasa la forma serializada a <i>pBlobWithRootSignature</i> en una llamada a **ID3D12Device::CreateRootSignature**.

El **REFIID**, o **GUID**, de la interfaz del diseño de firma raíz puede obtenerse mediante la macro \_\_uuidof().
Por ejemplo, \_\_uuidof([ID3D12RootSignature](/reference/graphics/d3d12/interfaces/id3d12rootsignature/id3d12rootsignature_public)) obtendrá el **GUID** de la interfaz de una firma raíz.

#### Ejemplos

El ejemplo [D3D12HelloTriangle](https://learn.microsoft.com/en-us/windows/win32/direct3d12/working-samples) usa **ID3D12Device::CreateRootSignature** de la siguiente manera:

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

```

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

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


## Related topics

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