IDXGIObject::SetPrivateData 方法 (dxgi.h)

将应用程序定义的数据设置为 对象,并将该数据与 GUID 相关联。

语法

HRESULT SetPrivateData(
  [in] REFGUID    Name,
       UINT       DataSize,
  [in] const void *pData
);

参数

[in] Name

类型: REFGUID

标识数据的 GUID。 在调用 GetPrivateData 时使用此 GUID 获取数据。

DataSize

类型: UINT

对象数据的大小。

[in] pData

类型: const void*

指向对象数据的指针。

返回值

类型: HRESULT

返回 DXGI_ERROR 值之一。

备注

SetPrivateData 创建指定数据的副本,并将其与 对象一起存储。

SetPrivateData 存储在 对象中的专用数据占用的存储空间与由关联的 Direct3D 对象存储的专用数据相同, (例如,Microsoft Direct3D 11 设备通过 ID3D11Device::SetPrivateData 或 Direct3D 11 子设备通过 ID3D11DeviceChild::SetPrivateData) 存储的专用数据。

调试层通过输出对象接口指针的列表及其友好名称来报告内存泄漏。 默认友好名称是“<unnamed>”。 可以设置友好名称,以便确定相应的对象接口指针是否导致泄漏。 若要设置友好名称,请使用 SetPrivateData 方法和已知私有数据 GUID (WKPDID_D3DDebugObjectName D3Dcommon.h 中的) 。 例如,若要为 pContext 提供 友好名称“我的名字”,请使用以下代码:


static const char c_szName[] = "My name";
hr = pContext->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName );

可以使用 WKPDID_D3DDebugObjectName 跟踪内存泄漏并了解应用程序的性能特征。 此信息反映在 调试层 的输出中,该输出与 ID3D11Debug::ReportLiveDeviceObjects) 以及我们已添加到 Windows 8 的 Windows 事件 的事件跟踪 相关的内存 (泄漏。

要求

   
目标平台 Windows
标头 dxgi.h
Library DXGI.lib

另请参阅

DXGI 接口

IDXGIObject