IddCxAdapterDisplayConfigUpdate2 函数 (iddcx.h)

远程驱动程序可以调用 IddCxAdapterDisplayConfigUpdate2,以允许客户端告诉服务器如何更新监视器配置。

语法

HRESULT IddCxAdapterDisplayConfigUpdate2(
  IDDCX_ADAPTER                              AdapterObject,
  const IDARG_IN_ADAPTERDISPLAYCONFIGUPDATE2 *pInArgs
);

参数

AdapterObject

[in]为显示配置指定的远程适配器的 IDDCX_ADAPTER 对象。

pInArgs

[in]指向包含函数输入参数的 IDARG_IN_ADAPTERDISPLAYCONFIGUPDATE2 结构的指针。

返回值

IddCxAdapterDisplayConfigUpdate2 成功后返回STATUS_SUCCESS;否则,它将返回适当的错误代码。

言论

远程间接显示驱动程序可以调用 IddCxAdapterDisplayConfigUpdate2 来设置作系统应用于特定监视器的模式、色度和其他值。 只有远程驱动程序能够调用此函数。

有关 HDR 支持的详细信息,请参阅 IddCx 版本 1.10 更新。

IDDCX_DISPLAYCONFIGPATH2 结构定义的方式不是所有信息都必须在每个调用中提供。 例如,如果颜色模式不是 HDR 或 WCG,或者 IddCxAdapterDisplayConfigUpdate2,则某些路径可能无法提供着色数据,仅当不需要布局更改时,才能更新 SDR 白级别。

控制模式(为路径设置 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 标志)有一些额外的规则和说明:

  • 如果任何路径 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 设置,则提供的所有路径都必须设置它
  • 在所有路径上提供 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 时,路径列表中不存在的任何当前活动路径都将变为非活动状态
  • 如果仅设置非IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 标志,则只需提供要更新的路径
  • 根据指定的颜色模式,路径可能需要其他数据。 下表指示必须设置哪些附加标志:
颜色模式 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MONITOR_COLORIMETRY_VALID IDDCX_DISPLAYCONFIGPATH2_FLAGS_MONITOR_SDRWHITELEVEL_VALID
特别 提款 权
SDRWCG 是的
HDR 是的 是的

第一次调用与后续调用 IddCxAdapterDisplayConfigUpdate2

IddCxAdapterDisplayConfigUpdate2 调用中首次包含路径时的要求与后续时间不同。 下表概述了这些要求。

路径字段 在路径的初始调用中是必需的 可以在初始调用后更新 Windows 客户端如何获取信息
模式 是的 是的 QueryDisplayConfig 将提供客户端显示配置,并在显示配置更改时发送 WM_DISPLAYCHANGE;AdvancedColorInfo.CurrentAdvancedColorKind 将提供颜色模式
比例因子 是的 是的 驱动程序可以使用用于 IddCxAdapterDisplayConfigUpdate
物理大小 如果未传递 EDID,则为 “是” 如果传递了 EDID,则不需要
比色法 对于非 SDR 颜色模式是 是的 来自相应 AdvancedColorInfo 字段的大多数字段
SDR 白色级别 对于 HDR 颜色模式,默认值为 80 nits 是的 AdvancedColorInfo.SdrWhiteLevelInNits,请参阅 在 HDR/SDR 上 显示高级颜色的 DirectX,了解详细信息

在 Windows 11 版本 22H2 9 月更新上运行时的行为差异

由于基础作系统功能,在 Windows 11 版本 22H2 9 月更新上运行时请求 HDR 和 WCG 颜色模式的驱动程序的支持与在 2024 年发布的 Windows 平台版本上运行略有不同。 驱动程序可以使用 IddCxGetVersion 函数来确定它们正在运行的 OS。 下表描述了驱动程序可以请求哪些颜色模式,具体取决于以前提供给 OS 的监视器描述符:

Edid 类型 22H2 9 月更新可能的颜色模式 2024 年可能的颜色模式中的平台版本
没有 SDR、HDR SDR、SDRWCG、HDR
特别 提款 权 SDR、SDRWCG SDR、SDRWCG
HDR SDR、HDR SDR、SDRWCG、HDR

例子

后续 IddCxAdapterDisplayConfigUpdate2 调用中包含的路径的一些示例。 在每个方案开始时,远程会话配置了以下路径:

监控 分辨率 桌面位置 颜色模式
1 1920x1080 @ 30Hz 0,0 特别 提款 权
2 1024x768 @ 30Hz 1024,0 SDRWCG
3 3840x2160 @ 30Hz 0,1848 HDR

方案 1 - 将监视器 3 的桌面位置更改为监视器 1 的左侧

监控 标志
1 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改
2 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改
3 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 将桌面位置更改为 -3840,0

方案 2 - 将监视器 2 从 SDRWCG 更改为 SDR

监控 标志
1 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改
2 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 设置新颜色模式
3 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改

方案 3 - 将监视器 1 从 SDR 更改为 HDR

监控 标志
1 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID、IDDCX_DISPLAYCONFIGPATH2_FLAGS_MONITOR_COLORIMETRY_VALID、IDDCX_DISPLAYCONFIGPATH2_FLAGS_MONITOR_SDRWHITELEVEL_VALID 设置新的颜色模式、色度和 SDR 白色级别
2 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改
3 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改

方案 4 - 更改监视器 2 的规模系数

监控 标志
2 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MONITOR_SCALE_FACTOR_VALID 设置新的缩放因子

方案 5 - 更改监视器 2 的规模系数和监视器 3 的桌面位置,以保留监视器 1

监控 标志
1 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改
2 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID,IDDCX_DISPLAYCONFIGPATH2_FLAGS_MONITOR_SCALE_FACTOR_VALID 不更改当前模式数据,设置新的缩放因子
3 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 将桌面位置更改为 -3840,0

方案 6 – 从当前配置中删除监视器 2

监控 标志
1 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改
3 IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID 对当前模式数据没有更改

要求

要求 价值
最低支持的客户端 Windows 11 版本 22H2 9 月更新(IddCx 版本 1.10)
标头 iddcx.h

另请参阅

IDARG_IN_ADAPTERDISPLAYCONFIGUPDATE2