> ## 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 (XBOX Series 主機)

> 建立已保留且尚未對應至堆積中任何頁面的資源 (可選擇用於受保護的工作階段)。

建立已保留且尚未對應至堆積中任何頁面的資源 (可選擇用於受保護的工作階段)。另請參閱 [ID3D12Device::CreateReservedResource](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public)。

<Note>
  只有從使用相同受保護資源工作階段建立之堆積中的圖格，才能對應至受保護的保留資源。
</Note>

## 語法

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

### 參數

*pDesc \[in]*\
類型：const D3D12\_RESOURCE\_DESC \*

**D3D12\_RESOURCE\_DESC** 結構的指標，描述資源。

*InitialState \[in]*\
類型：D3D12\_RESOURCE\_STATES

資源的初始狀態，以 **D3D12\_RESOURCE\_STATES** 列舉常數的位元 OR 組合表示。

*pOptimizedClearValue \[in, optional]*\
類型：const D3D12\_CLEAR\_VALUE \*

指定 **D3D12\_CLEAR\_VALUE** 結構，描述清除色彩的預設值。

*pOptimizedClearValue* 會指定清除作業最佳化的值。當建立的資源是具有 [D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET](/zh-TW/reference/graphics/d3d12_x/enums/d3d12_resource_flags) 或 **D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL** 旗標的紋理時，您應該選擇最常用來呼叫清除作業的值。您可以使用其他值呼叫清除作業，但這些作業的效率不如值與建立資源時傳入的值相符時那麼高。

使用 [D3D12\_RESOURCE\_DIMENSION\_BUFFER](/zh-TW/reference/graphics/d3d12_x/enums/d3d12_resource_dimension) 時，必須將 *pOptimizedClearValue* 設定為 `nullptr`。

*pProtectedSession \[in, optional]*\
類型：ID3D12ProtectedResourceSession \*

代表內容保護工作階段之物件的選擇性指標。如果有提供，此工作階段表示資源應受到保護。您可以呼叫 [ID3D12Device4::CreateProtectedResourceSession](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createprotectedresourcesession_public) 來取得 **ID3D12ProtectedResourceSession**。

*riid \[in]*\
類型：const IID &

要在 *ppvResource* 中傳回之資源介面的全域唯一識別碼 (**GUID**) 參考。請參閱**備註**。

雖然 *riidResource* 最常是 [ID3D12Resource](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) 的 **GUID**，但它可以是任何介面的 **GUID**。如果資源物件不支援此 **GUID** 的介面，則建立會失敗並傳回 **E\_NOINTERFACE**。

*ppvResource \[out, optional]*\
類型：void \*\*

記憶體區塊的選擇性指標，該區塊會接收所建立資源物件的要求介面指標。

*ppvResource* 可以是 `nullptr`，以啟用功能測試。當 *ppvResource* 為 `nullptr` 時，不會建立任何物件，且當 *pDesc* 有效時會傳回 **S\_FALSE**。

### 傳回值

類型：HRESULT

如果函式成功，會傳回 **S\_OK**。否則會傳回 [**HRESULT**](https://learn.microsoft.com/en-us/windows/desktop/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)。

## 備註

**CreateReservedResource** 相當於 Direct3D 11 中的 [D3D11\_RESOURCE\_MISC\_TILED](https://learn.microsoft.com/en-us/windows/win32/api/d3d11/ne-d3d11-d3d11_resource_misc_flag)。它會建立僅具有虛擬記憶體、沒有備份存放區的資源。

您需要使用 [CopyTileMappings](/zh-TW/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_copytilemappings_public) 和 [UpdateTileMappings](/zh-TW/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_updatetilemappings_public)，將資源對應至實體記憶體 (也就是堆積)。

只有當介面卡支援圖格資源層級 1 或更高層級時，才能建立這些資源類型。圖格資源層級定義了存取未對應至堆積之資源的行為。

## 需求

**標頭：** d3d12\_xs.h\
**程式庫：** d3d12\_xs.lib\
**支援的平台**：XBOX Series 主機

## 另請參閱

[CreateCommittedResource1](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommittedresource1_public)

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

[ID3D12Device4](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device4/id3d12device4_public)


## Related topics

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