DXGKDDI_DSIRESET回调函数 (dispmprt.h)
语法
DXGKDDI_DSIRESET DxgkddiDsireset;
NTSTATUS DxgkddiDsireset(
[in] HANDLE Context,
[in] D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId,
[out] PDXGK_DSI_RESET pArgs
)
{...}
参数
[in] Context
[in] TargetId
监视器的目标标识符。
[out] pArgs
指向 DXGI_DSI_CAPS 结构的指针。
返回值
DxgkddiDsiReset 如果成功,则返回STATUS_SUCCESS;否则,它将返回 Ntstatus.h 中定义的错误代码之一。
注解
如果 OEM 面板驱动程序检测到面板处于错误状态,则会发送 IOCTL_MIPI_DSI_RESET ,以请求在图形驱动程序和 OS 控制下重置设备。 重置必然是一项重量级操作,这将导致多个帧的显示空白,因此应仅用作最后手段。
在处理重置时无法继续正常面板操作,因此 OS 会非常类似于显示模式更改、刷新挂起的 GPU 活动(包括任何翻转)以及阻止新工作,直到完成。 OS 将 IOCTL 转换为 DxgkDsiReset DDI 调用。 驱动程序应完全从面板上拔下电源,并从头开始重新初始化它,并在适当的延迟后执行它所需的任何操作,以便在返回之前将面板还原到可行的状态。 设置后, SecondaryPort
标志指示重置应面向辅助面板,而不是主要面板。
如果图形驱动程序需要完整模式集才能从面板重置执行或还原,则应设置输出标志 NeedModeSet
。 如果在从调用返回时设置,OS 将在取消阻止正常活动之前使用 DxgkDdiSetTimingsFromVidPn 调用进行响应。 如果需要,驱动程序可以选择将一些重置工作推迟到此调用,前提是在设置计时调用之后预期有一个可行的状态。
图形驱动程序应报告检测到且未由驱动程序通过 MipiErrors
输出字段处理的任何低级别 MIPI 错误。
如果在重置期间发生不可恢复的错误,则图形驱动程序应设置 ResetFailed
输出标志。 这预计将是灾难性的失败。 图形驱动程序还应通过使用 DxgkCbIndicateConnectorChange 回调指示已拔出电源,然后通过报告已失败的目标的 TargetStatusDisconnect 来响应 DxgkDdiQueryConnectionChange ,从而发出目标上没有可用的显示信号。
输出字段将传播回 IOCTL 的输出缓冲区。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 2004 |
标头 | dispmprt.h |