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

另请参阅

DxgkCbIndicateConnectorChange

DxgkDdiQueryConnectionChange

DxgkDdiSetTimingsFromVidPn

IOCTL_MIPI_DSI_RESET