PFND3D11DDI_COPYSTRUCTURECOUNT回调函数 (d3d10umddi.h)

CopyStructureCount 函数将填充部分 (即追加缓冲区无序访问视图的填充大小值) (UAV) 偏移量复制到目标缓冲区中。

语法

PFND3D11DDI_COPYSTRUCTURECOUNT Pfnd3d11ddiCopystructurecount;

void Pfnd3d11ddiCopystructurecount(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HRESOURCE unnamedParam2,
  UINT unnamedParam3,
  D3D11DDI_HUNORDEREDACCESSVIEW unnamedParam4
)
{...}

参数

unnamedParam1

hDevice [in]

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

unnamedParam2

hDstBuffer [in]

目标缓冲区的句柄,用于将 UAV 的填充大小值复制到其中。 若要创建此目标缓冲区,运行时必须以前调用驱动程序的 CreateResource (D3D11) 函数,并将 D3D11DDIARG_CREATERESOURCE 结构的 ResourceDimension 成员设置为D3D10DDIRESOURCE_BUFFER值。

unnamedParam3

DstAlignedByteOffset [in]

hDstBuffer 参数指定的目标缓冲区的 4 字节对齐偏移量(以字节为单位)。 CopyStructureCounthSrcView 参数指定的追加缓冲区视图的填充大小值复制到 hDstBuffer 中的此偏移量。 DstAlignedByteOffset 必须是 4 的倍数。

unnamedParam4

hSrcView [in]

源追加 UAV 的句柄,该图柄必须是追加缓冲区视图。 CopyStructureCount 将此视图的填充大小值复制到 hDstBuffer 参数指定的目标缓冲区。 若要创建此追加缓冲区视图,运行时必须以前调用驱动程序的 CreateUnorderedAccessView 函数,并设置了D3D11_DDI_BUFFER_UAV_FLAG_APPEND标志。

返回值

备注

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

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

CopyStructureCount 采用追加缓冲区 UAV 的填充大小值, (支持对堆栈) 等结构的推送和弹出操作,并将此值复制到目标缓冲区中的偏移量。 图形硬件使用 4 字节填充大小值来跟踪追加缓冲区 UAV 中填充的数据量。

要求

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

另请参阅

CreateResource (D3D11)

CreateUnorderedAccessView

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb