ID3D12Device4::CreateHeap1 方法 (d3d12.h)

创建可用于放置资源和保留资源的堆(可选)(可选)。 另请参阅 ID3D12Device::CreateHeap

语法

HRESULT CreateHeap1(
  [in]            const D3D12_HEAP_DESC          *pDesc,
  [in, optional]  ID3D12ProtectedResourceSession *pProtectedSession,
  [in]            REFIID                         riid,
  [out, optional] void                           **ppvHeap
);

参数

[in] pDesc

类型:const D3D12_HEAP_DESC*

指向描述堆的常量 D3D12_HEAP_DESC 结构的指针。

[in, optional] pProtectedSession

类型:ID3D12ProtectedResourceSession*

指向表示内容保护会话的对象的可选指针。 如果提供,则此会话指示应保护堆。 可以通过调用 ID3D12Device4::CreateProtectedResourceSession来获取 ID3D12ProtectedResourceSession

无法使用 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER 标志创建具有受保护会话的堆。

[in] riid

类型:REFIID

对堆接口的全局唯一标识符(GUID)的引用,以在 ppvHeap中返回。

虽然 riidResource 通常是 ID3D12HeapGUID,但它可能是任何接口的 GUID。 如果资源对象不支持此 GUID的接口,则创建失败并 E_NOINTERFACE

[out, optional] ppvHeap

类型:void**

指向内存块的可选指针,该块接收指向所创建的堆对象的请求接口指针。

ppvHeap 可以 nullptr启用功能测试。 nullptr ppvHeap 时,不会创建任何对象,pDesc 有效时返回 S_FALSE

返回值

类型:HRESULT

如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码

返回值 描述
E_OUTOFMEMORY 内存不足,无法创建堆。

有关其他可能的返回值,请参阅 Direct3D 12 返回代码

言论

CreateHeap1 创建可用于放置资源和保留资源的堆。

在释放堆的最终引用之前,应用程序必须确保 GPU 不再读取或写入此堆。

放置的资源对象保存对创建它的堆的引用;但保留的资源不保留对对堆进行的每个映射的引用。

要求

要求 价值
最低支持的客户端 Windows 10 内部版本 20348
支持的最低服务器 Windows 10 内部版本 20348
目标平台 窗户
标头 d3d12.h
d3d12.lib
DLL d3d12.dll