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

# CreateReservedResource2 (XBOX Series 主机)

> ID3D12Device10 上的 CreateReservedResource2 在 XBOX Series 主机上创建一个具有初始布局的保留 D3D12 资源，该资源尚未映射到任何堆页面。

创建一个已保留但尚未映射到堆中任何页面的资源。

需要 DirectX 12 Agility SDK 1.7 或更高版本。

## 语法

```cpp theme={null}
HRESULT CreateReservedResource2(
    const D3D12_RESOURCE_DESC  pDesc,
    D3D12_BARRIER_LAYOUT InitialLayout,
    const D3D12_CLEAR_VALUE  pOptimizedClearValue,
    ID3D12ProtectedResourceSession  pProtectedSession,
    UINT32 NumCastableFormats,
    DXGI_FORMAT  pCastableFormats,
    const IID & riid,
    void  ppvResource
)
```

### 参数

*pDesc*<br />类型：const D3D12\_RESOURCE\_DESC \*

指向 **D3D12\_RESOURCE\_DESC** 结构的指针，该结构描述资源。

*InitialLayout*<br />类型：D3D12\_BARRIER\_LAYOUT

纹理资源的初始布局；对于缓冲区为 **D3D12\_BARRIER\_LAYOUT::D3D12\_BARRIER\_LAYOUT\_UNDEFINED**。

*pOptimizedClearValue*<br />类型：const D3D12\_CLEAR\_VALUE \*

指定 **D3D12\_CLEAR\_VALUE** 结构，该结构描述清除颜色的默认值。

*pOptimizedClearValue* 指定一个使清除操作最优的值。当创建的资源是带有 [D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET](/reference/graphics/d3d12_x/enums/d3d12_resource_flags) 或 **D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL** 标志的纹理时，应选择最常用于调用清除操作的值。您可以使用其他值调用清除操作，但这些操作不如在值与传递给资源创建时的值匹配的情况下高效。

当您使用 [D3D12\_RESOURCE\_DIMENSION\_BUFFER](/reference/graphics/d3d12_x/enums/d3d12_resource_dimension) 时，必须将 *pOptimizedClearValue* 设置为 `nullptr`。

*pProtectedSession*<br />类型：ID3D12ProtectedResourceSession \*

一个可选指针，指向表示内容保护会话的对象。如果提供，则该会话表明该资源应受到保护。可以通过调用 [ID3D12Device4::CreateProtectedResourceSession](/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createprotectedresourcesession_public) 获取 **ID3D12ProtectedResourceSession**。

*NumCastableFormats*<br />类型：UINT32

*pCastableFormats* 中的元素数量。

*pCastableFormats*<br />类型：DXGI\_FORMAT \*

此资源可强制转换到的 [DXGI\_FORMAT](https://learn.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format) 结构的连续数组。

*riid \[in]*<br />类型：const IID &

对要在 *ppvResource* 中返回的资源接口的全局唯一标识符 (**GUID**) 的引用。请参阅**备注**。

虽然 *riidResource* 最常见的是 [ID3D12Resource](/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) 的 **GUID**，但它可以是任何接口的 **GUID**。如果资源对象不支持此 **GUID** 的接口，则创建将失败并返回 **E\_NOINTERFACE**。

*ppvResource*<br />类型：void \*\*

一个可选指针，指向接收所创建资源对象的请求接口指针的内存块。

*ppvResource* 可以为 `nullptr`，以启用功能测试。当 *ppvResource* 为 `nullptr` 时，不会创建对象，并且在 *pDesc* 有效时返回 **S\_FALSE**。

### 返回值

类型：HRESULT

如果函数成功，则返回 **S\_OK**。否则，返回 [**HRESULT**](https://learn.microsoft.com/en-us/windows/win32/com/structure-of-com-error-codes) [错误代码](https://learn.microsoft.com/en-us/windows/win32/com/com-error-codes-10)。

| 返回值            | 描述           |
| -------------- | ------------ |
| E\_OUTOFMEMORY | 内存不足，无法创建资源。 |

有关其他可能的返回值，请参阅 [Direct3D 12 返回代码](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues)。

## 备注

请参阅 [ID3D12Device.CreateReservedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public) 的**备注**。

## 要求

**头文件：** d3d12\_xs.h<br />**库：** d3d12\_xs.lib<br />**支持的平台**：XBOX Series 主机

## 另请参阅

[CreateCommittedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommittedresource_public)

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

[ID3D12Device10](/reference/graphics/d3d12/interfaces/id3d12device10/id3d12device10_public)


## Related topics

- [CreatePlacedResource2 (XBOX Series 主机)](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
- [CreateReservedResource1 (XBOX Series 主机)](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createreservedresource1_public.md)
- [CreateHeap1 (XBOX Series 主机)](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createheap1_public.md)
- [CreateCommandQueue1 (XBOX Series 主机)](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device9/methods/id3d12device9_createcommandqueue1_public.md)
- [CreateMetaCommand (XBOX Series 主机)](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_createmetacommand_public.md)
