DXGKARG_COMMITVIDPN_FLAGS 结构 (d3dkmddi.h)

DXGKARG_COMMITVIDPN_FLAGS 结构标识有关 对 DxgkDdiCommitVidPn 函数的调用的详细信息。

语法

typedef struct _DXGKARG_COMMITVIDPN_FLAGS {
  UINT PathPowerTransition : 1;
  UINT PathPoweredOff : 1;
  UINT Reserved : 30;
} DXGKARG_COMMITVIDPN_FLAGS;

成员

PathPowerTransition

一个 UINT 值,该值指定 Microsoft DirectX 图形内核子系统是否调用 DxgkDdiCommitVidPn 函数来关闭连接的监视器的电源。

如果 PathPowerTransition 设置为 TRUE,则显示微型端口驱动程序可以针对关机 (优化此调用,例如,驱动程序可能会禁用垂直同步) 。 驱动程序还必须注意,它可能仍会收到对受影响源上的 DxgkDdiPresent 函数的调用。

设置此成员等效于 (0x00000001) 设置 32 位值的第一位。

有关更多信息,请参见下面的“备注”部分。

PathPoweredOff

一个 UINT 值,该值指定 DirectX 图形内核子系统是否调用 DxgkDdiCommitVidPn 来通知驱动程序用户更改了模式。

如果 PathPoweredOff 设置为 TRUE,则显示微型端口驱动程序应需要基于新拓扑的当前操作。 驱动程序无法执行导致拓扑路径再次开机的任何操作 (例如,驱动程序无法启用垂直同步) ,因为监视器现在应关闭电源。

如果 PathPoweredOff 设置为 FALSE,则拓扑路径已打开。 显示微型端口驱动程序应针对基于以前的拓扑路径的当前操作对硬件进行编程,并且驱动程序应提交硬件以支持此拓扑路径。 设置此成员等效于 (0x00000002) 设置 32 位值的第二位。

有关更多信息,请参见下面的“备注”部分。

Reserved

此成员是保留成员,应设置为零。 将此成员设置为零等效于将 32 位值的剩余 30 位 (0xFFFFFFFC) 设置为零。

注解

DXGKARG_COMMITVIDPN_FLAGS结构存储显示微型端口驱动程序可用于确定如何响应请求的模式更改的信息。 借助此信息,驱动程序可以区分在常规活动期间由于应用程序请求模式更改而发生的模式更改、因电源转换而发生的更改以及关闭监视器时发生的更改。

在常规活动期间,当调用 DxgkDdiCommitVidPn 函数时, PathPowerTransitionPathPoweredOff 成员都将为 FALSE ,以便驱动程序应立即应用模式更改。 此类模式更改通常作为独立事件执行。 因此,驱动程序无需跟踪与以前的模式配置关联的任何状态。

如果正在关闭或打开监视器, PathPowerTransition 将为 TRUE 以指示电源转换。 在这种情况下,一种常见模式是监视器将关闭,然后在稍后的某个时间还原原始配置。 驱动程序在系统关闭后完全重置显示配置可能是一个很大的工作负荷。 此外,驱动程序必须继续完成 DxgkDdiPresent 操作,同时关闭监视器。 但是,当调用 DxgkDdiCommitVidPn 时,驱动程序可以通过确保关闭所涉及的监视器来减少其工作负荷。 当电源恢复时,用于还原显示配置的驱动程序工作负载将因此减少。

由于监视器可能不会在系统恢复时 (物理连接,例如) ,因此驱动程序不应依赖 Windows 稍后调用 DxgkDdiSetPowerState 函数来设置显示适配器的子设备的电源状态。 但是,Windows 仍会请求打开 CRTC。 如果驱动程序在显示模式管理器 (DMM) 请求启用垂直同步时未启用垂直同步,并且用户稍后重新连接监视器,则监视器显示可能为空白。

在关闭监视器时,驱动程序仍必须遵循 DxgkDdiPresent 操作。 驱动程序可能需要对应用程序触发的模式更改执行操作,例如,对呈现管道执行修改以考虑旋转更改。 PathPowerTransition = FALSEPathPoweredOff = TRUE 的设置通知驱动程序已发生此类模式更改。 在这种情况下,驱动程序不得打开监视器,而是应根据需要重新编程硬件,以适应模式更改,以便可以完成其他 DxgkDdiPresent 操作。 执行此类模式更改后,如果监视器稍后重新打开,则关机前发生的模式不太可能恢复。

如果在系统挂起操作关闭监视器后触发系统恢复操作,则驱动程序可以在使用 PathPowerTransition = TRUE 进行 DxgkDdiCommitVidPn 调用之前,接收具有 PathPowerTransition = FALSEPathPoweredOff = FALSEDxgkDdiCommitVidPn调用。 这种情况只应发生在空拓扑中,在这种情况下,驱动程序不应重新打开监视器,因为电源转换尚未完成。

要求

要求
最低受支持的客户端 Windows Vista
标头 d3dkmddi.h (包括 D3dkmddi.h)

另请参阅

DXGKARG_COMMITVIDPN

DxgkDdiPresent

DxgkDdiSetPowerState