PFND3D11DDI_DESTROYUNORDEREDACCESSVIEW回调函数 (d3d10umddi.h)

销毁无序访问视图。

语法

PFND3D11DDI_DESTROYUNORDEREDACCESSVIEW Pfnd3d11ddiDestroyunorderedaccessview;

void Pfnd3d11ddiDestroyunorderedaccessview(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D11DDI_HUNORDEREDACCESSVIEW unnamedParam2
)
{...}

参数

unnamedParam1

hDevice [in]

显示设备的句柄 (图形上下文) 。

unnamedParam2

hUnorderedAccessView [in]

要销毁的无序访问视图的驱动程序专用数据的句柄。 Microsoft Direct3D 运行时释放它以前为无序访问视图分配的内存区域。 因此,驱动程序无法再访问此内存区域。

返回值

备注

驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。

驱动程序不应遇到任何错误,D3DDDIERR_DEVICEREMOVED除外。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递了除D3DDDIERR_DEVICEREMOVED以外的任何错误,则 Direct3D 运行时将确定错误严重。 即使删除了设备,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备删除干扰 DestroyUnorderedAccessView (通常不应在) 发生的操作,驱动程序可以返回D3DDDIERR_DEVICEREMOVED。

注意 在销毁直接上下文和设备或销毁延迟上下文期间,Windows 7 不会清除计算着色器无序访问视图 (CS UAV) 绑定点。 因此,驱动程序看到 UAV 句柄仍绑定到上下文,这违反了运行时提供的常规保证。 驱动程序可以通过执行以下步骤来解决此问题:

  • 使用 AbandonCommandListCreateCommandList 方法,因为每个方法都标记命令列表的末尾。
  • 通过验证以下任一状态是否设置为 NULL 来推断 CS UAV 绑定点的取消绑定:混合状态、光栅器状态和深度/模具状态。
 

要求

要求
最低受支持的客户端 从 Windows 7 操作系统开始支持 DestroyUnorderedAccessView。
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

AbandonCommandList

CreateCommandList

CreateUnorderedAccessView

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb