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

# CreateReservedResource1 (consoles XBOX Series)

> Cria um recurso (opcionalmente para uma sessão protegida) que é reservado e ainda não está mapeado para nenhuma página em um heap.

Cria um recurso (opcionalmente para uma sessão protegida) que é reservado e ainda não está mapeado para nenhuma página em um heap. Consulte também [ID3D12Device::CreateReservedResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public).

<Note>
  Somente blocos de heaps criados com a mesma sessão de recurso protegido podem ser mapeados em um recurso reservado protegido.
</Note>

## Sintaxe

```cpp theme={null}
HRESULT CreateReservedResource1(
    const D3D12_RESOURCE_DESC  pDesc,
    D3D12_RESOURCE_STATES InitialState,
    const D3D12_CLEAR_VALUE  pOptimizedClearValue,
    ID3D12ProtectedResourceSession  pProtectedSession,
    const IID & riid,
    void  ppvResource
)
```

### Parâmetros

*pDesc \[in]*\
Tipo: const D3D12\_RESOURCE\_DESC \*

Um ponteiro para uma estrutura **D3D12\_RESOURCE\_DESC** que descreve o recurso.

*InitialState \[in]*\
Tipo: D3D12\_RESOURCE\_STATES

O estado inicial do recurso, como uma combinação OR bit a bit de constantes de enumeração **D3D12\_RESOURCE\_STATES**.

*pOptimizedClearValue \[in, optional]*\
Tipo: const D3D12\_CLEAR\_VALUE \*

Especifica uma estrutura **D3D12\_CLEAR\_VALUE** que descreve o valor padrão para uma cor de limpeza.

*pOptimizedClearValue* especifica um valor para o qual as operações de limpeza são mais otimizadas. Quando o recurso criado é uma textura com o sinalizador [D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_flags) ou **D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL**, você deve escolher o valor com o qual a operação de limpeza será chamada com mais frequência. Você pode chamar a operação de limpeza com outros valores, mas essas operações não serão tão eficientes quanto quando o valor corresponde ao passado na criação do recurso.

Ao usar [D3D12\_RESOURCE\_DIMENSION\_BUFFER](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_dimension), você deve definir *pOptimizedClearValue* como `nullptr`.

*pProtectedSession \[in, optional]*\
Tipo: ID3D12ProtectedResourceSession \*

Um ponteiro opcional para um objeto que representa uma sessão de proteção de conteúdo. Se fornecida, essa sessão indica que o recurso deve ser protegido. Você pode obter uma **ID3D12ProtectedResourceSession** chamando [ID3D12Device4::CreateProtectedResourceSession](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createprotectedresourcesession_public).

*riid \[in]*\
Tipo: const IID &

Uma referência ao identificador global exclusivo (**GUID**) da interface de recurso a ser retornada em *ppvResource*. Consulte **Comentários**.

Embora *riidResource* seja mais comumente o **GUID** de [ID3D12Resource](/pt-BR/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs), ele pode ser o **GUID** de qualquer interface. Se o objeto de recurso não der suporte à interface desse **GUID**, a criação falhará com **E\_NOINTERFACE**.

*ppvResource \[out, optional]*\
Tipo: void \*\*

Um ponteiro opcional para um bloco de memória que recebe o ponteiro de interface solicitado para o objeto de recurso criado.

*ppvResource* pode ser `nullptr` para permitir o teste de capacidade. Quando *ppvResource* é `nullptr`, nenhum objeto é criado e **S\_FALSE** é retornado quando *pDesc* é válido.

### Valor retornado

Tipo: HRESULT

Se a função for bem-sucedida, ela retornará **S\_OK**. Caso contrário, retornará um [código de erro](https://learn.microsoft.com/en-us/windows/win32/com/com-error-codes-10) [**HRESULT**](https://learn.microsoft.com/en-us/windows/desktop/com/structure-of-com-error-codes).

| Valor retornado | Descrição |
| - | - |
| E\_OUTOFMEMORY | Não há memória suficiente para criar o recurso. |

Consulte [Códigos de retorno do Direct3D 12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues) para outros valores retornados possíveis.

## Comentários

**CreateReservedResource** é equivalente a [D3D11\_RESOURCE\_MISC\_TILED](https://learn.microsoft.com/en-us/windows/win32/api/d3d11/ne-d3d11-d3d11_resource_misc_flag) no Direct3D 11. Ele cria um recurso apenas com memória virtual, sem armazenamento de apoio.

Você precisa mapear o recurso para a memória física (ou seja, para um heap) usando [CopyTileMappings](/pt-BR/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_copytilemappings_public) e [UpdateTileMappings](/pt-BR/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_updatetilemappings_public).

Esses tipos de recurso só podem ser criados quando o adaptador dá suporte à camada de recursos em blocos 1 ou superior. A camada de recursos em blocos define o comportamento de acesso a um recurso que não está mapeado para um heap.

## Requisitos

**Cabeçalho:** d3d12\_xs.h\
**Biblioteca:** d3d12\_xs.lib\
**Plataformas com suporte**: consoles XBOX Series

## Confira também

[CreateCommittedResource1](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommittedresource1_public)

[CreatePlacedResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public)

[ID3D12Device4](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/id3d12device4_public)


## Related topics

- [CreateCommittedResource1 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommittedresource1_public.md)
- [CreateReservedResource2 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreatePlacedResource2 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
- [CreateHeap1 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createheap1_public.md)
- [CreateMetaCommand (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_createmetacommand_public.md)
