PFND3DKMT_OUTPUTDUPLPRESENT回调函数 (d3dkmthk.h)

将桌面窗口管理器(DWM)桌面重复 API 交换链中的演示命令提交到 Microsoft DirectX 图形内核子系统(Dxgkrnl.sys)。

语法

PFND3DKMT_OUTPUTDUPLPRESENT Pfnd3dkmtOutputduplpresent;

NTSTATUS Pfnd3dkmtOutputduplpresent(
  [in] const D3DKMT_OUTPUTDUPLPRESENT *unnamedParam1
)
{...}

参数

[in] unnamedParam1

pData

指向描述当前作参数的 D3DKMT_OUTPUTDUPLPRESENT 结构的指针。

返回值

返回以下值之一:

返回代码 说明
STATUS_SUCCESS 已成功执行当前作。
STATUS_DEVICE_REMOVED 图形适配器已停止或显示上下文已重置。
STATUS_INVALID_PARAMETER 参数已验证并确定不正确。
STATUS_NO_MEMORY D3DKMTOutputDuplPresent 由于内存不足而无法完成。
STATUS_GRAPHICS_ALLOCATION_INVALID 由于显示模式更改,主图面句柄已失效。 如果 OpenGL 可安装客户端驱动程序(ICD)收到此错误代码,则应重新打开或重新创建主句柄,将命令缓冲区中的所有引用替换为新句柄,然后重新提交缓冲区。
STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE D3DKMT_OUTPUTDUPLPRESENT 的 hContext 成员指定的呈现设备上下文上发生错误。
注意: 此错误代码不指示启动超时检测和恢复(TDR)进程或 GPU 停止响应。
例如,如果显示微型端口驱动程序指示从此设备提交的 DMA 缓冲区导致错误,或者视频内存管理器无法在拆分 DMA 缓冲区后对 DMA 缓冲区所需的所有分配进行分页,则 DirectX 图形内核子系统会将设备置于错误状态。 设备处于错误状态后,它无法再执行任何作,并且必须销毁并重新创建。 ICD 可以调用 D3DKMTGetDeviceState 函数来确定错误更精确的原因。

要求

要求 价值
最低支持的客户端 Windows 8
支持的最低服务器 Windows Server 2012
目标平台 普遍
标头 d3dkmthk.h (包括 D3dkmthk.h)

另请参阅

D3DKMTGetDeviceState

D3DKMT_OUTPUTDUPLPRESENT