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