PFND3D11DDI_DESTROYCOMMANDLIST回调函数 (d3d10umddi.h)

DestroyCommandList 函数会销毁命令列表。

语法

PFND3D11DDI_DESTROYCOMMANDLIST Pfnd3d11ddiDestroycommandlist;

VOID Pfnd3d11ddiDestroycommandlist(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D11DDI_HCOMMANDLIST unnamedParam2
)
{...}

参数

unnamedParam1

hDevice [in]

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

unnamedParam2

hCommandList [in]

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

返回值

没有

言论

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

仅当驱动程序支持 D3D11DDI_THREADING_CAPS 结构中可从调用 GetCaps(D3D10_2) 函数中返回的D3D11DDICAPS_COMMANDLISTS_BUILD_2功能时,驱动程序才需要实现 DestroyCommandList

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

驱动程序可以实现 DestroyCommandList 函数,该函数包含一个 开关 语句来处理命令列表的销毁和命令列表的轻量销毁。 也就是说, 驱动程序可以实现一个 DestroyCommandList,并且可以将 D3D11DDI_DEVICEFUNCS 结构的 pfnRecycleDestroyCommandList 成员设置为指向 DestroyCommandList,以及 pfnRecycleDestroyCommandList D3D11DDI_DEVICEFUNCS 成员,以指向 DestroyCommandList。 但是,为了提高性能,驱动程序可以实现单独的 DestroyCommandListRecycleDestroyCommandList 函数。

有关 RecycleDestroyCommandList的详细信息,请参阅 优化小型命令列表

要求

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

另请参阅

CreateCommandList

D3D11DDI_DEVICEFUNCS

D3D11DDI_THREADING_CAPS

GetCaps(D3D10_2)

pfnSetErrorCb