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

# CreateCommittedResource2 (XBOX Series 主機)

> 同時建立資源和堆積，使堆積大到足以容納整個資源，並將資源對應至該堆積。

同時建立資源和堆積，使堆積大到足以容納整個資源，並將資源對應至該堆積。

## 語法

```cpp theme={null}
HRESULT CreateCommittedResource2(  
         const D3D12_HEAP_PROPERTIES* pHeapProperties,  
         D3D12_HEAP_FLAGS HeapFlags,  
         const D3D12_RESOURCE_DESC1* pDesc,  
         D3D12_RESOURCE_STATES InitialResourceState,  
         const D3D12_CLEAR_VALUE* pOptimizedClearValue,  
         ID3D12ProtectedResourceSession* pProtectedSession,  
         REFIID riidResource,  
         void** ppvResource  
)  
```

### 參數

*pHeapProperties*   \_In\_\
類型：D3D12\_HEAP\_PROPERTIES\*

指向 D3D12\_HEAP\_PROPERTIES 結構的指標，提供資源堆積的屬性。

*HeapFlags*   \
類型：[D3D12\_HEAP\_FLAGS](/zh-TW/reference/graphics/d3d12_x/enums/d3d12_heap_flags)

堆積選項，為 D3D12\_HEAP\_FLAGS 列舉常數的位元 OR 組合。

*pDesc*   \_In\_\
類型：[D3D12\_RESOURCE\_DESC1\*](/zh-TW/reference/graphics/d3d12_xs/structs/d3d12_resource_desc1)

指向描述資源之 D3D12\_RESOURCE\_DESC1 結構的指標。

*InitialResourceState*   \
類型：[D3D12\_RESOURCE\_STATES](/zh-TW/reference/graphics/d3d12_x/enums/d3d12_resource_states)

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

當您搭配 D3D12\_HEAP\_TYPE\_UPLOAD 堆積建立資源時，必須將 InitialResourceState 設定為 D3D12\_RESOURCE\_STATE\_GENERIC\_READ。

當您搭配 D3D12\_HEAP\_TYPE\_READBACK 堆積建立資源時，必須將 InitialResourceState 設定為 D3D12\_RESOURCE\_STATE\_COPY\_DEST。

*pOptimizedClearValue*   \_In\_opt\_\
類型：D3D12\_CLEAR\_VALUE\*

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

pOptimizedClearValue 指定讓清除作業最佳化的值。當建立的資源是具有 D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET 或 D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL 旗標的紋理時，您應該選擇最常用來呼叫清除作業的值。您可以使用其他值呼叫清除作業，但這些作業的效率不如該值符合建立資源時所傳入的值。

當您使用 D3D12\_RESOURCE\_DIMENSION\_BUFFER 時，必須將 pOptimizedClearValue 設定為 nullptr。

*pProtectedSession*   \_In\_opt\_\
類型：ID3D12ProtectedResourceSession\*

選擇性的指標，指向代表內容保護工作階段的物件。XBOX 不支援，且必須為 NULL。

*riidResource*   \_In\_\
類型：REFIID

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

雖然 riidResource 最常是 ID3D12Resource 的 GUID，但它可以是任何介面的 GUID。如果資源物件不支援此 GUID 的介面，則建立會失敗並傳回 E\_NOINTERFACE。

*ppvResource*   \_COM\_Outptr\_\
類型：void\*\*

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

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

### 傳回值

類型：HRESULT

如果函式成功，則傳回 S\_OK。否則會傳回 HRESULT 錯誤碼。

| 傳回值 | 描述 |
| - | - |
| E\_OUTOFMEMORY | 記憶體不足，無法建立資源。 |

如需其他可能的傳回值，請參閱 Direct3D 12 傳回碼。

## 備註

此方法會同時建立資源和堆積，使堆積大到足以容納整個資源，並將資源對應至該堆積。建立的堆積稱為隱含堆積，因為應用程式無法取得該堆積物件。在釋放資源的最後一個參考之前，您的應用程式必須確保 GPU 不會再讀取或寫入此資源。

隱含堆積會在方法將控制權傳回給您的應用程式之前，設為常駐以供 GPU 存取。另請參閱常駐。

資源的 GPU VA 對應無法變更。

此方法可由多個執行緒同時呼叫。

## 需求

**標頭：** d3d12\_xs.h

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

## 另請參閱

[取樣器意見反應 Direct3D 12 API 概觀](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/graphics/newfeatures/sfs/sf-api-design)

[ID3D12Device8](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12Device8/id3d12device8)


## Related topics

- [CreateReservedResource2 (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreateReservedResource2 (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreateReservedResource2 (XBOX Series consoles)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreateReservedResource2 (XBOX Series 主机)](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreatePlacedResource2 (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
