ID3D12Device3::OpenExistingHeapFromAddress 方法 (d3d12.h)

从地址在系统内存中创建一个特殊用途的诊断堆。 即使出现 GPU 故障或设备删除的情况,创建的堆也可以保留。

语法

HRESULT OpenExistingHeapFromAddress(
  [in]  const void *pAddress,
        REFIID     riid,
  [out] void       **ppvHeap
);

参数

[in] pAddress

类型: const void*

用于创建堆的地址。

riid

类型: REFIID

堆接口的全局唯一标识符 (GUID) (ID3D12Heap) 。

可以使用 __uuidof () 宏获取堆接口的 REFIIDGUID。 例如, __uuidof (ID3D12Heap) 将检索堆接口的 GUID

[out] ppvHeap

类型: void**

SALCOM_Outptr

指向内存块的指针。 成功后,D3D12 运行时会将指向新打开的堆的指针写入内存块。 指针的类型取决于提供的 riid 参数。

返回值

类型: HRESULT

如果内存不足,无法打开现有堆,此方法将返回 E_OUTOFMEMORY 。 有关其他可能的返回值,请参阅 Direct3D 12 返回代码

备注

堆在系统内存中创建,并允许 CPU 访问。 它包装整个 VirtualAlloc 区域。

堆可用于放置和保留的资源,与其他堆一样正交。 根据无法选择应用的标志,可能仍存在限制。

要求

   
目标平台 Windows
标头 d3d12.h
Library D3d12.lib
DLL D3d12.dll

请参阅

ID3D12Device3 接口