PFND3D11_1DDI_ASSIGNDEBUGBINARY回调函数 (d3d10umddi.h)

提供创建着色器后可用的完整着色器二进制文件。 完整的着色器二进制文件允许驱动程序检索通常不可用于驱动程序的调试信息或其他着色器二进制信息。

语法

PFND3D11_1DDI_ASSIGNDEBUGBINARY Pfnd3d111DdiAssigndebugbinary;

void Pfnd3d111DdiAssigndebugbinary(
       D3D10DDI_HDEVICE unnamedParam1,
       D3D10DDI_HSHADER unnamedParam2,
       UINT uBinarySize,
  [in] const VOID *pBinary
)
{...}

参数

unnamedParam1

hDevice [in]

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

unnamedParam2

hShader [in]

着色器对象的驱动程序专用数据的句柄。

uBinarySize

完整着色器二进制文件的大小(以字节为单位)。

[in] pBinary

指向完整着色器二进制文件的指针。

返回值

备注

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

仅当以下所有条件都成立时,才调用 AssignDebugBinary

  • 可以调试设备。
  • 用户模式显示驱动程序已设置 D3D11_1DDI_D3D11_OPTIONS_DATAAssignDebugBinarySupport 标志为 TRUE
  • 已调用着色器创建函数 CreateXxxShaderXxx ,已成功,并且已返回着色器的句柄。
驱动程序不应遇到任何错误, D3DDDIERR_DEVICEREMOVED除外。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递除D3DDDIERR_DEVICEREMOVED以外的任何错误,Microsoft Direct3D 运行时将确定错误严重。 即使删除了设备,驱动程序也不需要返回 D3DDDIERR_DEVICEREMOVED;但是,如果设备移除干扰了 AssignDebugBinary 的操作 (通常不应) 发生,驱动程序可以返回 D3DDDIERR_DEVICEREMOVED

要求

要求
最低受支持的客户端 Windows 8
最低受支持的服务器 Windows Server 2012
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

D3D11_1DDI_D3D11_OPTIONS_DATA

pfnSetErrorCb