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 来设置 OS 应用于特定监视器的模式、色度和其他值。 只有远程驱动程序才能调用此函数。
有关 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 |
---|---|---|
SDR | 否 | 否 |
SDRWCG | 是 | 否 |
高动态范围图像 | 是 | 是 |
对 IddCxAdapterDisplayConfigUpdate2 的首次调用与后续调用
首次将路径包含在 IddCxAdapterDisplayConfigUpdate2 调用中时,其要求与后续时间不同。 下表概述了这些要求。
路径字段 | 路径的初始调用中是必需的 | 可以在初始调用后更新 | Windows 客户端如何获取信息 |
---|---|---|---|
模型 | 是 | 是 | QueryDisplayConfig 将提供客户端显示配置,并在显示配置更改时发送 WM_DISPLAYCHANGE ; AdvancedColorInfo.CurrentAdvancedColorKind 将提供颜色模式 |
比例因子 | 是 | 是 | 驱动程序可以使用用于 IddCxAdapterDisplayConfigUpdate 的方法 |
物理大小 | 如果未通过 EDID,则为 “是” | 否 | 如果传递了 EDID,则不需要 |
色度 | 对于非 SDR 颜色模式是 | 是 | 来自相应 AdvancedColorInfo 字段的大多数字段 |
SDR 白级别 | 是对于 HDR 颜色模式,默认值为 80 尼特 | 是 | AdvancedColorInfo.SdrWhiteLevelInNits,请参阅 在 HDR/SDR 显示器上使用高级颜色的 DirectX 了解详细信息 |
在 Windows 11 版本 22H2 9 月更新上运行时的行为差异
由于基础 OS 功能,在 Windows 11 版本 22H2 9 月更新上运行时对请求 HDR 和 WCG 颜色模式的驱动程序的支持与在 2024 年 Windows 平台版本上运行时略有不同。 驱动程序可以使用 IddCxGetVersion 函数来确定它们在哪个操作系统上运行。 下表描述了驱动程序可以根据以前提供给 OS 的监视器描述符请求哪些颜色模式:
Edid 类型 | 22H2 9 月更新可能的颜色模式 | 2024 年平台版本可能的颜色模式 |
---|---|---|
无 | SDR、HDR | SDR、SDRWCG、HDR |
SDR | SDR、SDRWCG | SDR、SDRWCG |
高动态范围图像 | SDR、HDR | SDR、SDRWCG、HDR |
示例
下面是要包含在后续 IddCxAdapterDisplayConfigUpdate2 调用中的路径的一些示例。 在每个方案开始时,远程会话配置了以下路径:
监视 | 解决方法 | 桌面位置 | 颜色模式 |
---|---|---|---|
1 | 1920x1080 @ 30Hz | 0,0 | SDR |
2 | 1024x768 @ 30Hz | 1024,0 | SDRWCG |
3 | 3840x2160 @ 30Hz | 0,1848 | 高动态范围图像 |
方案 1 - 将监视器 3 的桌面位置更改为监视器 1 的左侧
监视 | Flags | 详细信息 |
---|---|---|
1 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID | 当前模式数据没有更改 |
2 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID | 当前模式数据没有更改 |
3 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID | 将桌面位置更改为 -3840,0 |
方案 2 - 将监视器 2 从 SDRWCG 更改为 SDR
监视 | Flags | 详细信息 |
---|---|---|
1 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID | 当前模式数据没有更改 |
2 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID | 设置新的颜色模式 |
3 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID | 当前模式数据没有更改 |
方案 3 - 将监视器 1 从 SDR 更改为 HDR
监视 | Flags | 详细信息 |
---|---|---|
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 的规模因子
监视 | Flags | 详细信息 |
---|---|---|
2 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MONITOR_SCALE_FACTOR_VALID | 设置新的比例系数 |
方案 5 - 将监视器 2 的比例系数和监视器 3 的桌面位置更改为监视器 1 的左
监视 | Flags | 详细信息 |
---|---|---|
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 - 从当前配置中删除 Monitor 2
监视 | Flags | 详细信息 |
---|---|---|
1 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID | 当前模式数据没有更改 |
3 | IDDCX_DISPLAYCONFIGPATH2_FLAGS_MODE_VALID | 当前模式数据没有更改 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 11,版本 22H2 9 月更新 (IddCx 版本 1.10) |
标头 | iddcx.h |