DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构 (d3dkmddi.h)

DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构标识在调用显示微型端口驱动程序的 DxgkDdiSetVidPnSourceAddressDxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay 函数时要执行的特定操作类型。

语法

typedef struct _DXGK_SETVIDPNSOURCEADDRESS_FLAGS {
  union {
    struct {
      UINT ModeChange : 1;
      UINT FlipImmediate : 1;
      UINT FlipOnNextVSync : 1;
      UINT FlipStereo : 1;
      UINT FlipStereoTemporaryMono : 1;
      UINT FlipStereoPreferRight : 1;
      UINT SharedPrimaryTransition : 1;
      UINT IndependentFlipExclusive : 1;
      UINT MoveFlip : 1;
#if ...
      UINT Reserved : 23;
#elif
      UINT Reserved : 24;
#elif
      UINT Reserved : 25;
#else
      UINT Reserved : 29;
#endif
    };
         UINT Value;
  };
} DXGK_SETVIDPNSOURCEADDRESS_FLAGS;

成员

ModeChange

一个 UINT 值,该值指定驱动程序切换显示模式。

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

FlipImmediate

一个 UINT 值,指定驱动程序执行不进行垂直同步的翻转操作。

设置此成员等效于设置 32 位 Value 成员 (0x00000002) 的第二位。

FlipOnNextVSync

一个 UINT 值,该值指定驱动程序在下一次垂直同步时执行翻转操作。

设置此成员等效于设置 32 位 Value 成员 (0x00000004) 的第三位。

[in] FlipStereo

从Windows 8开始支持。

指定驱动程序是否翻转立体声分配的左右图像。

如果设置了 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipOnNextVSync 成员,驱动程序将完成对下一个 VSync 上的左侧映像的翻转,然后在以下 VSync 上完成向右映像的翻转。

如果设置了 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipImmediate 成员,驱动程序会立即开始从新分配中扫描出来。 例如,如果驱动程序正在扫描正确的映像,它将从新分配的右映像中的相同相对偏移量启动新扫描。

FlipStereoFlipStereoTemporaryMono 成员不能同时设置。

有关更多要求,请参阅备注部分。

设置此成员等效于设置 32 位 Value 成员 (0x00000008) 的第四位。

[in] FlipStereoTemporaryMono

从Windows 8开始支持。

指定驱动程序是否对立体声帧的右侧和左侧部分使用立体声分配的左侧图像。 驱动程序执行与 FlipStereo 相同的当前操作,只不过它只从左侧图像中扫描出来以生成立体声帧的两个图像。

仅当驱动程序报告支持在当前显示模式下通过将 D3DKMDT_VIDPN_SOURCE_MODE 结构的 Type 成员设置为 D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN 时,才应设置此成员。

FlipStereoFlipStereoTemporaryMono 成员不能同时设置。

FlipStereoTemporaryMonoFlipStereoPreferRight 成员不能同时设置。

有关更多要求,请参阅备注部分。

设置此成员等效于设置 32 位 Value 成员 (0x00000010) 的第五位。

[in] FlipStereoPreferRight

从Windows 8开始支持。

指定当驱动程序将立体声主分配克隆到单声道监视器时,它会使用正确的图像。

FlipStereoTemporaryMonoFlipStereoPreferRight 成员不能同时设置。

有关更多要求,请参阅备注部分。

设置此成员等效于设置 32 位 Value 成员 (0x00000020) 的第六位。

[in] SharedPrimaryTransition

从Windows 8开始支持。

指定驱动程序正在转换到共享托管主分配或从共享托管主分配转换。

如果发生以下任一转换,则设置此成员:

  • 当前的主要分配不是共享的主分配,而是新的主分配。
  • 当前的主要分配是共享的主分配,但新的主分配不是。
设置 SharedPrimaryTransition 时,显示微型端口驱动程序必须验证硬件是否可以在主分配和共享主分配之间无缝切换,并且必须执行实现无缝切换所需的任何硬件编程。

设置此成员等效于设置 32 位 Value 成员 (0x00000040) 的第七位。

[in] IndependentFlipExclusive

从Windows 10开始支持。

设置 IndependentFlipExlusive 时,翻转是在独立翻转独占模式下完成的。 只有显示硬件 (不由 DWM) 访问前端缓冲区,并且内核模式驱动程序可以应用与垂直同步相关的优化。

[in] MoveFlip

从Windows 10开始支持。

设置 MoveFlip 后,系统会通知驱动程序使用从上一次翻转保存的任何状态来配置新的扫描请求。

[in] Reserved

此成员为保留成员,应设置为零。 将此成员设置为零等效于将 32 位 Value 成员的剩余 23 位 (0xFFFFFF00) 设置为零。

Value

DXGK_SETVIDPNSOURCEADDRESS_FLAGS包含的联合中的成员可以保存标识操作类型的 32 位值。

注解

如果设置了 任何 FlipStereoFlipStereoTemporaryMonoFlipStereoPreferRight 成员,则以下条件适用:

  • DXGKARG_SETVIDPNSOURCEADDRESS 结构的 hAllocation 成员指向使用在 D3DKMT_DISPLAYMODE 结构的 Flags 成员中设置 Stereo 成员创建的分配。
  • DXGKARG_SETVIDPNSOURCEADDRESSPrimarySegmentPrimaryAddress 成员指向分配的起始物理地址。
  • 驱动程序遵循 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipImmediateFlipOnNextVSync 成员的设置。
从 Windows 8 开始,当在 pSetVidPnSourceAddress标志中设置 SharedPrimaryTransition 成员时,显示微型端口驱动程序可能无法调用 DxgkDdiSetVidPnSourceAddress -> 函数,返回STATUS_INVALID_PARAMETER。 但是,除非用户模式驱动程序实现 CheckDirectFlipSupport 函数或在桌面窗口管理器 (DWM) 中出现错误,否则不会发生此类故障。 如果发生此类故障,操作系统不会无缝地故障回复到组合模式,并且呈现将不正确。

要求

要求
最低受支持的客户端 从 Windows Vista 开始可用。
标头 d3dkmddi.h (包括 D3dkmddi.h)

另请参阅

D3DKMT_DISPLAYMODE

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_SETVIDPNSOURCEADDRESS_FLAGS

DxgkDdiSetVidPnSourceAddress

DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay