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 回调函数来设置错误代码。

仅当以下所有内容均为 true 时,才会调用 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