本部分介绍如何将 Windows 触摸或笔数字化器自动映射到适用于 Windows 10 及更高版本的作系统的相应显示器。 自动映射数字化器及其显示器的方法根据内部显示器和外部显示器而有所不同。
外部显示器
Windows 将使用容器 ID 匹配外部数字化仪和显示器,因此两台设备必须报告相同的值。
可以使用 Microsoft OS ContainerID 描述符指定数字化器的容器 ID,显示端的建议方法是使用头戴式和专用显示器的 EDID 扩展直接报告匹配的容器 ID。 此方法不需要任何新的/附加驱动程序。
如果显示使用此 EDID 扩展,则扩展的数据块除了容器 ID 之外,还必须指定以下数据值:
- 版本字段必须0x3(在 Windows 10 版本 1903 中添加了对此版本的 Windows 支持)
- 桌面使用标志必须设置为0x1
- 第三方使用标志必须设置为0x0
- “显示产品主要用例”字段不得设置为0x7或0x8
注释
如果用户有多个启用触摸/笔输入的显示器,并且这些显示器是相同品牌和型号,那么重要的是要确保每个显示器有不同的容器标识符,以确保每个触控识别器正确映射到相应的显示器。 如果多个设备共享相同的容器 ID,Windows 将无法映射它们。 容器 ID 应该是全局唯一值,例如 GUID 生成器工具的输出。 切勿报告 {00000000-0000-0000-ffff-ffffffffffff} 或 {00000000-0000-0000-0000-000000000000} 的 ContainerID。
在某些情况下,可能无法通过 EDID 报告匹配的容器 ID,因此存在需要第三方显示驱动程序的备用机制。 驱动程序将处理 DXGKDDI_GET_CHILD_CONTAINER_ID回调函数 来报告匹配的容器 ID。
如果只有一个外部显示器,Windows 会将该显示器映射到任何被标记为外部的数字化器——无需其他属性匹配。 仅当有多个外部显示器时,才需要按容器 ID 进行匹配,即使并非所有外部显示器都已启用触摸/笔。 因此,仅在连接了多个外部显示器时,最终用户才可能注意到不匹配的容器 ID。在这种情况下,Windows 将数字化器映射到主显示器,并且可能影响映射指针坐标的显示器特定属性将不会被使用。
内部显示器
如果存在单个内部显示器,则唯一的要求是数字化器也标记为内部 - 无需其他属性匹配。
当有多个内部显示器时,Windows 将使用 其 ACPI 物理位置说明 (_PLD)配置将数字化器与其显示匹配。 为了使映射发生,数字化器和显示器必须匹配:
- 他们的容器标识符(通常情况下这是“内部”容器标识符)
- 其 _PLD CabinetNumber 值(或者仅支持 _PLD v1 时,其 Lid 和 Dock 值)
- 它们的 _PLD“面板”值
用户重写
Windows 允许用户通过打开控制面板 > 硬件和声音 > 平板电脑设置,然后单击 “设置...”来替代其数字化器显示映射。此实用工具应仅用作修复现有硬件问题的方法 - 遵循上述指南的新硬件不需要此实用工具。