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

# CreateHeap1 (XBOX Series 主機)

> 建立可搭配放置的資源和保留的資源使用的堆積 (可選擇用於受保護的工作階段)。

建立可搭配放置的資源和保留的資源使用的堆積 (可選擇用於受保護的工作階段)。另請參閱 [ID3D12Device::CreateHeap](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createheap_public)。

## 語法

```cpp theme={null}
HRESULT CreateHeap1(
    const D3D12_HEAP_DESC  pDesc,
    ID3D12ProtectedResourceSession  pProtectedSession,
    const IID & riid,
    void  ppvHeap
)
```

### 參數

*pDesc \[in]*<br />類型：const D3D12\_HEAP\_DESC \*

常數 **D3D12\_HEAP\_DESC** 結構的指標，描述堆積。

*pProtectedSession \[in, optional]*<br />類型：ID3D12ProtectedResourceSession \*

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

具有受保護工作階段的堆積無法使用 [D3D12\_HEAP\_FLAG\_SHARED\_CROSS\_ADAPTER](/zh-TW/reference/graphics/d3d12_x/enums/d3d12_heap_flags) 旗標建立。

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

要在 *ppvHeap* 中傳回之堆積介面的全域唯一識別碼 (**GUID**) 參考。

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

*ppvHeap \[out, optional]*<br />類型：void \*\*

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

*ppvHeap* 可以是 `nullptr`，以啟用功能測試。當 *ppvHeap* 為 `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)。

## 備註

**CreateHeap1** 會建立可搭配放置的資源和保留的資源使用的堆積。

在釋放堆積的最後一個參考之前，您的應用程式必須確保 GPU 不會再讀取或寫入此堆積。

放置的資源物件會保有其建立所在堆積的參考；但保留的資源不會為對堆積所做的每個對應保有參考。

## 需求

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

## 另請參閱


## Related topics

- [CreatePlacedResource2 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
- [CreateReservedResource2 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreateMetaCommand (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_createmetacommand_public.md)
- [CreateCommandList1 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommandlist1_public.md)
- [CreateCommandQueue1 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device9/methods/id3d12device9_createcommandqueue1_public.md)
