DXGKDDI_CONTROLINTERRUPT3回调函数 (d3dkmddi.h)

DxgkDdi_ControlInterrupt3 函数为图形硬件上的指定 VidPnSourceId 启用或禁用给定的中断类型。

语法

DXGKDDI_CONTROLINTERRUPT3 DxgkddiControlinterrupt3;

NTSTATUS DxgkddiControlinterrupt3(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_CONTROLINTERRUPT3 InterruptControl
)
{...}

参数

[in] hAdapter

图形处理单元的适配器对象的句柄 (GPU) 。 驱动程序从对其 DxgkDdiAddDevice 函数的调用返回 MiniportDeviceContext 参数中的此句柄。

[in] InterruptControl

提供中断类型、VSYNC 状态和 VidPnSourceId 的 DXGKARG_CONTROLINTERRUPT3 结构。

返回值

DxgkDdi_ControlInterrupt3 返回以下值之一:

返回代码 说明
STATUS_SUCCESS 已在图形硬件上成功启用或禁用中断类型。
STATUS_NOT_IMPLEMENTED DxgkDdi_ControlInterrupt3 不支持启用或禁用指定的中断类型。

注解

在 WDDM 中使用 VSync 控件来切换 VSync ON 和 OFF,以在方案有效使用 VidPn 源和通过关闭 VSync 实现的节能之间取得平衡。 通常,操作系统控制 VSync 何时应保持打开和关闭的逻辑,并通过 DDI 调用通知 IHV 内核模式驱动程序 (KMD) 。 KMD 执行请求。 在Windows 10版本 2004 (WDDM 2.7) 之前,VSync 控件的粒度是每个适配器;也就是说,对于给定的适配器,VSync 控件应用于适配器的每个 VidPn 源。 例如,假设有两个 VidPn 源连接到两个不同的输出的适配器。 如果一个输出没有活动,并且其上没有 VSync/VBlank 的使用者,则只有一个选项:OS 必须为非活动输出保留 VSync ON。

对于双屏便携式设备,在不需要时为一个屏幕保留 VSync 会产生巨大的电源成本。 它要求显示控制器/显示链接保持活动状态,并阻止支持自我刷新的面板进入低频率、低功耗自刷新模式。 在 Windows 10 版本 2004 及更高版本中,DxgkDdiControlInterrupt3 允许对适配器的每个 VidPn 源进行更精细的 VSync 控制。

在适配器的生存期内,操作系统仅使用 DxgkDdiControlInterrupt3DxgkDdi_ControlInterrupt2 之一。

不实现 DxgkDdi_ControlInterrupt3 的 WDDM 2.7 驱动程序选择退出独立的 VidPn VSync 控制,操作系统将仅调用 DxgkDdi_ControlInterrupt2DXGK_DRIVERCAPS-IndependentVidPnVSync> 功能在不支持DxgkDdi_ControlInterrupt3的驱动程序中必须为 0;否则,OS 将失败适配器初始化。 如果驱动程序实现了 DxgkDdi_ControlInterrupt3,则可以将该功能设置为 0 或 1 以指示 Per-VidPn 支持。

要求

要求
最低受支持的客户端 Windows 10 版本 2004
标头 d3dkmddi.h

另请参阅

DXGKARG_CONTROLINTERRUPT2

DXGK_DRIVERCAPS

DXGKARG_CONTROLINTERRUPT3

DxgkDdi_ControlInterrupt2