启用收件箱驱动程序的唤醒
此主题介绍如何使用内置 HIDI2C、HIDSPI 或 HIDUSB 驱动程序实现触摸唤醒。
内置 HIDI2C 驱动程序
内置 HIDI2C 驱动程序会在设备进入低功耗状态时发送 SetPower(Sleep) 命令。 在转换为 D2 和转换为 D3 时会发生这种情况。
如何启用触摸唤醒
- 按照触摸唤醒实现指南中的“ACPI 固件要求”部分的要求定义 ACPI 中的唤醒资源和功能。
- 触摸控制器固件应启用“触摸唤醒”来响应 SetPower(Sleep) 命令。
- 在响应从 D0 到 D3Hot 的转换时,尽管仍会将 SetPower(Sleep) 命令发送到设备,但 ACPI 固件应将最低数量的电源资源保留在触摸控制器上,因为无需触摸唤醒功能。
- 如果支持 D3Cold,则在响应从 D3Hot 到 D3Cold 的转换时,ACPI 固件可能会关闭触摸控制器的所有电源资源。
- 根据下面的“INF 要求”部分的说明,生成一个 INF 以选择使用触摸唤醒策略。
- 根据 OEM 要求和/或设备的外形因素,验证设备是否在使用相应的触摸手势时唤醒。 同时,验证它不会导致虚假的唤醒事件,并且启用此功能的功耗可以接受。 请参阅触摸唤醒验证指南。
内置 HIDSPI 驱动程序
HIDSPI 驱动程序在设备进入 D2 时发送 SetPower(Sleep) 命令。 此命令在 HIDSPI 规范中定义。
对于 D3(Hot),HIDSPI 驱动程序会发送 SetPower(Off) 命令,而不是 SetPower(Sleep) 命令。 此命令在 HIDSPI 规范中定义。
如何启用触摸唤醒
- 按照触摸唤醒实现指南中的“ACPI 固件要求”部分的要求定义 ACPI 中的唤醒资源和功能。
- 触摸控制器固件应启用“触摸唤醒”来响应 SetPower(Sleep) 命令。
- 在响应 SetPower(Off) 命令时,触摸控制器固件应进入功耗最小的“关闭”状态,这是为了避免出现系统不支持 D3Cold 而导致触摸控制器始终处于 D3Hot 状态的情况。
- 如果支持 D3Cold,则在响应从 D3Hot 到 D3Cold 的转换时,ACPI 固件可能会关闭触摸控制器的所有电源资源。
- 根据下面的“INF 要求”部分的说明,生成一个 INF 以选择使用触摸唤醒策略。
- 根据 OEM 要求和/或设备的外形因素,验证设备是否在使用相应的触摸手势时唤醒。 同时,验证它不会导致虚假的唤醒事件,并且启用此功能的功耗可以接受。 请参阅触摸唤醒验证指南。
内置 HIDUSB 驱动程序
如何启用触摸唤醒
- 根据下面的“INF 要求”部分的说明,生成一个 INF 以选择使用触摸唤醒策略。
- 为了满足 Windows 硬件兼容性 (WHCP) 中定义的最低要求,需要使用内部 USB 触摸设备来支持选择性挂起。 若要详细了解如何启用选择性挂起,请参阅基于 USB 的 HID 设备的选择性挂起文档。
- 设备固件应启用触摸唤醒以响应 D2 或端口挂起。 设备固件可能会为触摸唤醒选择不同的扫描速率或手势,以改进用户体验,具体取决于 HID 延迟模式功能报告设置。 有关延迟设置的详细信息,请参阅触摸屏电源管理文档中的“USB 设备”部分。
- 根据 OEM 要求和/或设备的外形因素,验证设备是否在使用相应的触摸手势时唤醒。 同时,验证它不会导致虚假的唤醒事件,并且启用此功能的功耗可以接受。 请参阅触摸唤醒验证指南。
注意
如果 USB 触摸作为 USB 3.0 多功能设备的 USB 功能实现,则它应支持“功能挂起”,以便触摸功能可以在不依赖于其他功能的情况下进入触摸唤醒的低功耗状态。 Microsoft 提供的父驱动程序 (Usbccgp.sys) 支持功能挂起和远程唤醒功能。
INF 要求
默认情况下,不会选择使用 HIDClass 触摸唤醒电源策略。
对于使用内置驱动程序 (HIDUSB/HIDI2C/HIDSPI) 的触摸控制器,OEM/IHV 应创建一个 INF,并将以下内容添加到其 DDInstall.HW 部分,以选择使用触摸唤醒策略。
Include = input.inf
Needs = WakeScreenOnTouch.HW
MSDN 文章“基于 USB 的 HID 设备的选择性挂起”提供的一个示例演示了 OEM/IHV INF 如何引用内置 INPUT.INF 来启用另一项功能,该功能名为“选择性挂起”。 OEM/IHV 在其 INF 中的作用可能是类似的,但会引用上述部分来启用触摸唤醒。
为了简化此 INF,OEM/IHV 还可以考虑改为创建扩展 INF。 有关扩展 INF 的详细信息,请参阅使用扩展 INF 文件文档。
如果设备已选择使用与触摸唤醒策略冲突的任何其他 HID 策略,则会忽略其中任一策略。
如果设备有多个 HID 集合,其中包括触摸屏集合 (UsagePage:0xD, Usage:0x4) 和非触摸屏集合,则触摸固件应仅支持从触摸屏集合唤醒。 如果非触摸屏集合也可以发出唤醒信号,设备仍将返回到 D0 状态以耗尽电量。