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