以下部分详细介绍了 OEM 选择组件(如状态传感器)以支持上述收件箱设备体验的指南。 除了特定设备体验的特定指南外,它还涵盖了所有传感器的一般要求。 存在传感器是类型为“人类”的邻近传感器。 阅读本部分之前,请查看设备体验和 状态感知 术语。
本部分旨在为希望在系统上安装状态传感器硬件的 OEM 提供指导。 这些准则表示最小可行的传感器设置。 Microsoft鼓励安装优于此处标准的硬件。
范围、延迟、距离和电源不会由Microsoft测量,但 OEM 和 ODM 应根据 HLK 要求验证功能。 如果系统报告距离,则应测量其准确性。
所有人类状态传感器的重要设计详细信息和常规要求
如果邻近感应传感器支持人类存在,则它必须支持检测类型:
DEFINE_PROPERTYKEY(DEVPKEY_Sensor_HumanPresenceDetectionType,0xd4247382, 0x969d, 0x4f24, 0xbb, 0x14, 0xfb, 0x96, 0x71, 0x87, 0xb, 0xbf, 81); //[VT_UI4]
目前定义的检测类型如下:
| 用法名称 | 使用类型 | 使用情况说明 |
|---|---|---|
| 人类在场检测类型:供应商定义的非生物识别 | Sel | 使用由供应商定义的非生物识别方法检测到一个或多个人的存在。 这用于肯定传感器正在使用与以下定义的生物识别无关的检测。 如果没有此功能,主机无法假定设备不会使用生物识别。 |
| 人体存在检测类型:供应商定义的生物特征识别 | Sel | 利用供应商定义的人体生物识别技术检测到一人或多人的存在。 这是一种使用尚未在下方定义的生物识别技术的通用人体存在传感器。 |
| 人类存在检测类型:面部生物识别 | Sel | 通过扫描(例如,使用低分辨率摄像机)检测人类存在(例如,使用 Viola-Jones 对象检测来识别人脸)。 不区分人脸或检测面部属性。 这种检测类似于现有的数字摄像机,可以将边界框放在人脸周围。 |
| 人体存在检测类型:音频生物识别 | Sel | 人类的存在是通过扫描(例如麦克风)来检测人类声音(例如,预定义关键字、常规谈话、大声噪音、鼓掌)。 不区分语音或用户,也不会检测音频特征。 此类别中的传感器应在指示用户存在的音频事件后报告“存在”持续10秒。 缺勤的延迟要求从此时间段结束开始计算。 |
重要
所有状态传感器必须准确报告上述检测类型。
小窍门
本部分旨在为希望在系统上安装人工状态硬件的 OEM 提供指导。 这些准则表示最低可行的传感器设置,Microsoft鼓励安装优于此处标准的硬件。
类别 1 人类存在传感器要求 (面部生物识别)
| 度量值 | 指标 | 注释 |
|---|---|---|
| 传感器范围 | .2m – 1.2m 注意:这是最小可行范围。将允许具有更好范围的传感器。 | 直接测量(上面定义)时,用户必须能够在 1.2 米处触发唤醒。 |
| 传感器延迟 - 正在使用中 | <.33 秒 | 此要求定义从固件识别人类存在到操作系统接收该消息的时间。 延迟要求对应于每秒三个或更多帧的帧速率。 众所周知,一旦从传感器收到信号,操作系统的唤醒时间会有所不同。 |
| 传感器延迟 - 待机 | <1.0 秒 | 此要求定义从固件识别人类存在到操作系统接收该消息的时间。 延迟要求对应于每秒一个或多个帧的帧速率。 众所周知,一旦从传感器收到信号,操作系统的唤醒时间会有所不同。 |
| 传感器电源 - 正在使用中 | <用于内部传感器的 80 毫瓦; 外部传感器的功耗由总线的电力限制决定; 所有测量值为平均值。 | 请注意,将来可能会降低到 25 mW (2027+)。 此测量涵盖了整个传感器子系统,包括发射器、接收器以及仅在唤醒和锁定情境下使用的任何 LED。 |
| 传感器电源 - 待机 | <内部传感器的功耗为25毫瓦;外部传感器的功耗由总线的电源限制决定;所有测量值为平均值。 | 请注意,这是最大峰值功率消耗。 请注意,将来可能会降低到 10 mW (2027+)。 |
| 准确性 - 距离报告 | +/- 5 厘米 | 以45厘米(12英寸)、75厘米(29.5英寸)和120厘米(47.2英寸)测量。 仅当此传感器支持距离时才是必需的。 |
注释
为了功耗测量,可以禁用其他功能,例如 GPIO 聚合、快门控制或其他与人存在检测无关的功能。
类别 2 人类存在传感器要求(其他)
| 度量值 | 指标 | 注释 |
|---|---|---|
| 传感器范围 | .2m – 1.2m 注意:这是最小可行范围。将允许具有更好范围的传感器。 | 直接测量(上面定义)时,用户必须能够在 1.2 米处触发唤醒。 |
| 传感器延迟 | <.25 秒 | 此要求定义从固件识别人类存在到接收该消息的 HID 驱动程序的时间。 众所周知,一旦从传感器收到信号,操作系统的唤醒时间会有所不同。 |
| 传感器电源 - 正在使用 | <内部传感器的 65 毫瓦;对于外部传感器的功耗,由总线的电源限制决定;所有测量值为平均值。 | 此测量涵盖了整个传感器子系统,包括发射器、接收器以及仅在唤醒和锁定情境下使用的任何 LED。 请注意,将来可能会降低到 25 mW (2027+)。 |
| 传感器电源 - 待机 | <5 兆瓦;对于外部传感器的能耗,由总线的电源限制决定;所有度量值平均值。 | 这将通过测量系统处于新式待机状态时传感器的功耗来实现。 此度量封装了整个传感器子系统,包括发射机、接收器以及仅根据唤醒和锁定方案使用的任何其他硬件。 |
| 准确性 - 距离报告 | +/- 5 厘米 | 以45厘米(12英寸)、75厘米(29.5英寸)和120厘米(47.2英寸)测量。 仅当此传感器支持距离时才是必需的。 |
注释
可以为功率测量而禁用其他功能,例如 GPIO 聚合、快门控制或其他与人存在检测无关的功能。
设备集成
传感器放置对于提供最佳用户体验和在设备之间提供一致的人际状态体验至关重要。
理想的放置取决于设备的外形规格,在所有情况下,OEM 都应确定其设备的最佳位置。 此外,对于如 2 合 1 可转换笔记本电脑这样的多姿势设备,建议传感器固件在人体存在传感器无法提供准确测量(例如传感器未面向用户或受阻)的姿势时报告数据字段 isValid = false。 传感器的实际最佳放置通常与显示器(面向用户)位于同一平面上。
此外,请确保设备可以采用的不同配置(例如,键盘在平板电脑模式和笔记本电脑模式下的位置)不会阻止光圈,也不会与传感器的视野相交。
最后,确保传感器的视野没有与任何可能干扰的光源(如相机闪光、键盘背光等)相交,因为这些光源可能导致额外的噪声或错误的读数。 在考虑视场与光线或电磁波干扰源相交时,请确保考虑设备可以采用的所有不同配置。
| 外形规格 | 人体存在传感器位置和注意事项 |
|---|---|
| 平板电脑 | 将人类存在传感器放置在设备表面附近,而不是中间,具有适当的屏蔽,以确保准确的读数。 |
| 可转换 | 请对可转换样式系统使用最佳判断力。 |
| 翻盖 | 将人类状态传感器放在盖子上,放在面向用户的显示器上方(建议)。 |
| 一体式监视器或外部监视器 | 将人类存在传感器放置在设备前部(例如挡板区域)(建议)。 |
| 桌面 | 如果要将人类存在传感器放在台式机的机箱上,建议将其放置在边缘附近的机箱顶部。 最好在监视器中包含状态传感器或提供外部 USB 保护器。 |
高延迟存在传感器
Windows 11 及更高版本的将来版本可能会增加对非方向和/或高延迟传感器的支持,例如那些利用 Wi-Fi 无线电进行状态感应的传感器。 对于 Windows 收件箱解决方案,建议不要使用现有平台对传感器的支持,除非它们可以满足现有的传感器延迟 KPI。 在支持这些传感器类型之前,需要实施额外的收件箱操作系统功能,这些功能包括调整用户超时下拉选项和其他选择项,并根据报告的传感器延迟实现 OEM 自定义。
距离检测阈值和距离敏感度阈值
当传感器标识用户在场状态时,应使用检测距离阈值:如果距离小于或等于阈值,则为用户在场(UserPresent);如果距离大于阈值,则为用户不在场(UserNotPresent)。 每当以下情况时,传感器都必须报告新样本:
- 用户在线状态更改。
- 用户参与状态更改,而用户位于检测距离阈值中指定的范围内。
- 距离变化大于当前距离敏感度阈值,而用户位于检测距离阈值中指定的范围内。
对于 OS 功能:锁定离开、自适应调光和旁观器检测
- 自适应调光使用与锁定离开时相同的距离检测阈值。
- 旁观器检测距离检测阈值是 OEM 可配置的。 默认值 - 3000mm,最小值 - 1200 mm。
- 对传感器编程的距离检测阈值将是活动模式中的最大值,其中 Onlooker >= LockOnLeave/AdaptiveDimming >= WakeOnApproach
外部人体存在传感器支持和仲裁策略
内置功能支持集成到监视器中的外部人机状态传感器。 以下部分详细介绍了应用于外部人机状态传感器的实现、要求和策略。 其他类型的外部传感器(如独立传感器)不受完全支持,因为外形规格和使用类型过于多样化,无法可靠地支持。 但是,没有任何明确禁止此类传感器的规定,建议有兴趣生产此类传感器的供应商联系sasensor@microsoft.com。
执行
外部人体存在传感器应像内部传感器一样对操作系统公开,但 DEVPKEY_Sensor_ConnectionType 传感器属性应标记为外部,以便操作系统知道外部连接。 OS 将知道传感器是否通过与传感器关联的 PLD 信息集成到外部监视器中。 强烈建议将传感器公开为 HID 设备,以便使用收件箱 HID 类驱动程序。 这样,用户就无需为外部传感器安装驱动程序才能正常运行。
外部传感器与系统之间的物理连接应该是独立于显示连接的 USB 连接。 这是因为标准显示连接类型(如 HDMI 或 DisplayPort)都不支持 HID。 显示器和传感器可以通过 USB-C 备用模式和 USB4 共享一个连接,但并非所有用户都能使用这些连接器类型,因此不应依赖其作为外部传感器的唯一连接器。
要求
外部人机状态传感器必须满足与内部人机状态传感器相同的要求,并通过相同的 HLK 和手动测试。
处理具有不同功能的传感器
当有多个具有不同功能的状态传感器时,例如传感器 A 仅支持在接近时唤醒和离开时锁定,而传感器 B 仅支持自适应调光。 “ 设置” 页将反映所选传感器的功能。 如果选择了传感器 A,则将只显示唤醒和锁定切换。 如果选择了传感器 B,则只会显示自适应调光开关。
默认状态传感器选择逻辑
在 Windows 11 22H2 及之前,默认情况下选择了最后连接的传感器。 从 2023 年 5 月更新到 Windows 11 22H2 及更新版本开始,选择逻辑如下所示:
用于接近时唤醒、离开时锁定和旁观者检测的策略
外部传感器优先于内部传感器,当连接到系统时,完全将内部传感器替换为唤醒和锁定的输入。 优先级意味着当外部传感器连接时,它将成为系统的默认传感器。 现有的用户首选项(如超时或检测距离)将传输到外部传感器。
下面提供了不同外部传感器配置的仲裁策略。
| 系统已集成传感器 | 系统具有外部传感器 | 仲裁策略 |
|---|---|---|
| 是的 | 没有 | 如果系统的盖子已关闭;旁观者、唤醒和锁定将被禁用,无法正常工作。 |
| 否 | 没有 | 功能不存在或已禁用。 |
| 是的 | 单身 | 外部连接的传感器将成为旁观者、唤醒和锁定的默认所选传感器。 用户可以选择在 Windows 设置用户界面中配置他们喜欢的传感器。 仅当系统有多个传感器可用时,才会显示此设置。 在版本 22H2 或更高版本中,2023 年 5 月更新之后,选择逻辑遵循默认状态传感器选择逻辑。 |
| 否 | 单身 | 默认情况下将使用外部连接的传感器。 |
| 是的 | 倍数 | 用户界面中将显示相同的用户选项。 上次连接到系统的传感器将是默认传感器,直到用户选择另一个选项。 在版本 22H2 或更高版本中,2023 年 5 月更新之后,选择逻辑遵循默认状态传感器选择逻辑。 |
| 否 | 倍数 | 用户界面中将显示相同的用户选项。 上次连接到系统的传感器将是默认传感器,直到用户选择另一个选项。 在版本 22H2 或更高版本中,2023 年 5 月更新之后,选择逻辑遵循默认状态传感器选择逻辑。 |
小窍门
在确定显示器上集成的传感器是否可用时,不会考虑监视器方向,假定传感器在这些情况下仍可以正常运行。
自适应调光策略
下面提供了不同外部传感器配置的仲裁策略。
| 系统已集成传感器 | 系统具有外部传感器 | 仲裁策略 |
|---|---|---|
| 是的 | 没有 | 如果存在没有人类存在传感器的外部监视器,并且“当我在外部显示器连接时将屏幕变暗”的状态为关闭,或者系统的盖子关闭,自适应调光将被禁用,不能正常工作。 |
| 否 | 没有 | 功能不存在或已禁用。 |
| 是的 | 单个/多个 | 内部和外部传感器遵循默认存在传感器选择逻辑(2023年5月后的更新版本22H2或更高版本)。 信号从不组合 - 仅根据逻辑选择一个传感器。 对于外接显示器,行为取决于“当连接外接显示器时,如果我移开视线则调暗屏幕”的开关。 |
| 否 | 单身 | 默认情况下将使用外部连接的传感器。 |
小窍门
在确定显示器上集成的传感器是否可用时,不会考虑监视器方向,假定传感器在这些情况下仍可以正常运行。
虚拟人存在传感器
人机状态传感器必须由物理设备提供支持。 换句话说,不应将假软件设备作为代理公开,以控制唤醒、锁定或自适应变暗。 此功能仅供物理场景使用。 此要求的意图是,状态传感器必须检测和引用物理环境以确定用户状态信号。 如果虚拟 HID 传感器正在聚合来自其他传感器(例如麦克风或其他用户输入)的数据,并且正在卸载的硅(例如 NPU 或 MCU)中运行,而 OS 上的应用程序无法访问图像或音频元数据,则可以实现虚拟 HID 传感器。 对于相机,虚拟状态传感器不应在 OS 中使用或处理图像元数据。 实施在操作系统上使用映像或元数据的虚拟传感器的 OEM 和 IHV 承担因此类实现行为的隐私所有法律责任。
此白皮书中状态传感器的电源要求适用于物理传感器。 对于运行其他子系统部分的虚拟化传感器,电源要求继承自其运行的子系统。 例如,在现代待机系统上运行的虚拟状态传感器,并在卸载的音频子系统中运行应遵循新式待机平台的音频子系统电源管理中列出的要求
与相机隐私快门和终止开关交互
预计隐私快门不会干扰人类存在传感器,除非将图像元数据传输到 OS。 如果同一个物理传感器与 Windows Hello(红外摄像头)或常规 RGB 摄像头一起使用,建议人类存在传感器通过与 ISP 完全分开的物理路径(例如,通过离散的 NPU)来传输,其中只进行推理,不会将任何图像元数据(包括面部特征)传输到操作系统。 由于相机终止开关应在 ISP 固件中运行,因此物理上独立的路径可确保终止开关不会干扰人类存在功能。 如果未将单独的物理路径用于共享传感器,则相机 HLK 指导意见表明隐私快门会同时在 RGB 和 IR 传感器上运行,这会即干扰人机状态检测功能,导致用户体验不佳,因为 Windows 不会提醒用户人机存在检测功能被阻止。 目前不建议在人类存在与 ISP 之间共享路径。 但是,如有必要,ISP 将停止 HPD 检测(用于节电),并报告 HPD 传感器不可用。
强烈建议物理快门通过 CT_PRIVACY_CONTROL(适用于 UVC 设备)或 KSPROPERTY_CAMERACONTROL_PRIVACY(如果使用 AVStream 或 DMFT 驱动程序)向操作系统报告其状态。 有关详细信息,请参阅 相机隐私快门通知。
可以在 相机隐私控件中找到有关相机隐私快门、终止开关和 LED 功能的详细信息。
与相机隐私 LED 交互
Microsoft期望相机隐私 LED 可以且应该在未将图像元数据传输到 OS 的情况下保持关闭状态。 要求人体存在传感器在硬件上无法实现将面部或图像数据传输到操作系统。 这可以通过各种机制来实现,例如,包括但不限于专用总线或物理上与相机 ISP 或传感器内的熔丝分开的路径。 有关相机隐私 LED 功能的详细信息,请参阅 相机隐私控件 部分。
实施指南
本部分的读者(打算开发状态传感器驱动程序)应熟悉 传感器驱动程序设计指南。
在硬件中,人体存在传感器作为 SensorType_Proximity 用DEVPKEY_Sensor_ProximityTypeProximityType_HumanProximity = 1来实现。
如果传感器利用生物识别,它可以位于 SensorCategory_Biometric中。
设备总线连接
在设备总线连接上,HLK 测试之外没有硬性要求(请参阅下文)。 但是,建议系统生成器尽可能利用 Windows 11 中提供的收件箱驱动程序。 例如,有适用于 I2C 的收件箱 HID 驱动程序和基于 HID 的设备的收件箱传感器驱动程序。 这提供了Microsoft在 Windows 11 中维护收件箱驱动程序的好处。
电源管理
本部分包含人类状态传感器电源管理的基本概述。 有关更多详细信息,请参阅 传感器电源管理。
小窍门
状态传感器设计为在现代待机系统上正常运行。 在 2023 年 5 月更新到 Windows 11 版本 22H2 及更高版本中添加了对非新式待机系统唤醒方法的其他支持。
HIDUSB 实现的其他要求
通过 USB 设备对 HID 的选择性挂起 文章中提供了 OEM 或 IHV INF 如何引用系统自带的输入文件 INPUT.INF 以启用另一种选择性挂起功能的示例。 OEM 和 IHV 在 INF 中可能执行类似的操作,但引用上述提到的部分来启用触摸唤醒。
为了简化此 INF,OEM 和 IHV 还可以考虑改为创建扩展 INF。 请参阅 “使用扩展 INF 文件 ”文档。
如果设备有多个 HID 集合,包括人机状态传感器集合、非人类状态集合,传感器固件应仅支持从人类邻近集合唤醒。 如果用于检测非人类活动的传感器集合也可能发出唤醒信号,设备仍将返回 D0 状态以降低电力消耗。
协议实现(高级体系结构)
本部分需要必要的驱动程序实现详细信息才能将人机状态传感器报告给 OS。 从技术上来说,这是通过在人体生物识别传感器类别中的邻近类型传感器上实现一种人体邻近感应检测类型来完成的。
下图表示当功能正常运行时,传感器中的数据如何向上流动堆栈。 外部监视器将使用标记为“HID”的图表。
| 驱动程序类型/传感器功能 | Distance-Capable HW (+/- 5 厘米) | Distance-Agnostic HW |
|---|---|---|
| HID:人机接口设备 | 基于 HID 的远距离数据流 (建议) | 基于 HID 的与距离无关的数据流 |
| CLX:Windows 传感器类别扩展 | 基于 CLX 的具备距离处理能力的数据流 | 基于 CLX 的与距离无关的数据流 |
基于 HID 的远距离数据流 (建议)
基于 CLX 的具备距离处理能力的数据流
基于 HID 的与距离无关的数据流
基于 CLX 的与距离无关的数据流
高级数据流
- 用户通过设置 UI 修改唤醒或锁定设置,并将其传达给 Windows 传感器服务。
- Windows 传感器服务在正常作或新式待机期间启动人机状态传感器,以监视唤醒和锁定。
- 人类存在传感器会生成一个新样本,该样本包括检测到的人类存在、检测距离,并且样本有效。
- 如果系统处于现代待机状态,并且新的人体存在样本在配置的检测范围内报告人体,则 Windows 传感器服务将向 Windows 电源堆栈发送唤醒信号。 相反,如果系统处于正常运行状态,并且未报告人工或超出配置的检测范围,则 Windows 传感器服务将向 Windows 电源堆栈发送超时信号。
人体存在信号
信号:
- 用户存在信号 - 当传感器报告的数据样本中用户存在数据字段设置为 true 时发生。 如果系统支持注意力,则在此状态下将注意力设置为激活/真。
- 用户存在未参与信号 – 出现在支持注意力的系统中,当传感器报告数据样本时,人的存在数据字段设为 true,然后注意力被设为未参与或 false。
- 用户未显示信号 – 当传感器报告数据样本时,将人工演示数据字段设置为 false 时发生。
- 用户未知信号 – 当人类存在未知时发出信号。 如果传感器被虚假移除,或者传感器尚未报告有效样本,则可能会出现这种情况。
必需的 HID 描述符和顶级集合
如果实现,可以使用基于 HID 的某一体系结构,下面的部分将介绍用于公开状态信息的数据字段。
有关通过 HID 公开设备的其他信息,请参阅 传感器 HID 使用情况。
人类的存在 - 存在 (唤醒和锁定)
| 使用情况 ID | 注释 |
|---|---|
| 0x04B1 HID_USAGE_SENSOR_DATA_生物特征_人体存在 | 用于公开指示存在状态的布尔值。 将此值设置为“1”以指示人类存在。 将此值设置为“0”以指示不存在人类。 |
| 0x04B2 HID_USAGE_SENSOR_DATA_BIOMETRIC_HUMAN_PROXIMITY_RANGE (传感器数据生物识别人体接近范围) | 用于公开输入报表默认单元中的距离值以米为单位,但本文档中的示例报告描述符显示设备如何报告毫米。 这将在将来的 Windows 更新中成为一个可选字段。 |
注释
毫米报告必须准确到 +/- 5000mm 内。 报告的范围可以是连续的,也可以是离散的增量(小于5000毫米,例如2000毫米、3000毫米等)。这将在未来的Windows更新中成为一个可选项目。
验证指南 - 最低要求和测试:Windows 硬件认证计划 (WHCP)
Windows 硬件兼容性计划规范和政策中的硬件实验室工具包(HLK)测试概述了认证您的硬件为兼容所需的最低测试和要求。