飞行模式无线电管理

从 Windows 8 开始,Windows 操作系统通过 HID 为飞行模式无线电管理控制提供支持。

体系结构和概述

飞行模式的目的是让个人电脑制造商提供一个按钮或开关(可能还有一个指示状态的 LED 灯),使最终用户能够一次性打开/关闭所有无线控制。 这主要使需要打开/关闭飞行模式的用户能够以编程方式进行操作,从而使操作系统能够 (a) 识别开关状态和 (b) 通过软件来控制各种无线无线电设备。

Windows 在“通用桌面使用”页面上提供对以下 HID 用法的支持。

用法 ID 用法名称 使用情况类型
0x000C 无线无线电控件 集合应用程序 (CA)
0x00C6 无线无线电按钮 开/关控件 (OOC)
0x00C7 无线无线电 LED 开/关控件 (OOC)
0x00C8 无线无线电滑块开关 开/关控件 (OOC)

以下是支持无线电管理/飞行模式的 HID 客户端结构图。

飞行模式体系结构。

ShellHW 检测服务 (SHSVCD.dll) 是以用户模式运行的 HID 客户端驱动程序/服务,为无线电管理设备提供支持。 它可监控是否存在 HID 顶层集合类型

  • USAGE_PAGE(通用桌面)05 01
  • USAGE(无线无线电控件)09 0C

示例报告描述符

以下部分提供了电脑制造商必须利用的报告描述符示例。 请注意,如果顶层集合是已有另一个顶层集合的报告描述符的一部分,则必须包含报告 ID(下面的示例中没有显示)。

下一部分为电脑制造商提供更多信息,并确定哪种报告描述符示例最适合其系统设计:

  • 无状态按钮通常用于键盘消费者控制按钮(独立使用或与许多移动系统的功能按钮结合使用,如 Fn+F5)。
  • 滑块开关通常用于带有物理滑块开关的移动系统(例如带有飞行模式开关的笔记本电脑)。
  • LED 通常用作独立的飞机指示灯,或与无状态按钮或滑块开关配合使用。 Windows 用户不需要在移动设备上使用这种 LED 指示灯,因为用户界面上有关于飞行模式的视觉指示。

不带 LED 指示灯的无状态按钮

USAGE_PAGE (Generic Desktop)                   05 01 
USAGE (Wireless Radio Controls)                09 0C 
COLLECTION (Application)                       A1 01 
LOGICAL_MINIMUM (0)                            15 00 
LOGICAL_MAXIMUM (1)                            25 01 
USAGE (Wireless Radio Button)                  09 C6 
REPORT_COUNT (1)                               95 01 
REPORT_SIZE (1)                                75 01 
INPUT (Data,Var,Rel)                           81 06 
REPORT_SIZE (7)                                75 07 
INPUT (Cnst,Var,Abs)                           81 03 
END_COLLECTION                                 C0

带 LED 指示灯的无状态按钮

USAGE_PAGE (Generic Desktop)                    05 01 
USAGE (Wireless Radio Controls)                 09 0C 
COLLECTION (Application)                        A1 01 
LOGICAL_MINIMUM (0)                             15 00 
LOGICAL_MAXIMUM (1)                             25 01 
USAGE (Wireless Radio Button)                   09 C6 
REPORT_COUNT (1)                                95 01 
REPORT_SIZE (1)                                 75 01 
INPUT (Data,Var,Rel)                            81 06 
REPORT_SIZE (7)                                 75 07 
INPUT (Cnst,Var,Abs)                            81 03 
USAGE (Wireless Radio LED)                      09 C7 
REPORT_SIZE (1)                                 75 01 
OUTPUT (Data,Var,Rel)                           91 02 
REPORT_SIZE (7)                                 75 07 
OUTPUT (Cnst,Var,Abs)                           91 03 
END_COLLECTION                                  C0

滑块开关(无 LED)

USAGE_PAGE (Generic Desktop)                    05 01 
USAGE (Wireless Radio Controls)                 09 0C 
COLLECTION (Application)                        A1 01 
LOGICAL_MINIMUM (0)                             15 00 
LOGICAL_MAXIMUM (1)                             25 01 
USAGE (Wireless Radio Slider Switch)            09 C8 
REPORT_COUNT (1)                                95 01 
REPORT_SIZE (1)                                 75 01 
INPUT (Data,Var,Abs)                            81 02 
REPORT_SIZE (7)                                 75 07 
INPUT (Cnst,Var,Abs)                            81 03 
END_COLLECTION                                  C0

带 LED 的滑块开关

USAGE_PAGE (Generic Desktop)                    05 01 
USAGE (Wireless Radio Controls)                 09 0C 
COLLECTION (Application)                        A1 01 
LOGICAL_MINIMUM (0)                             15 00 
LOGICAL_MAXIMUM (1)                             25 01 
USAGE (Wireless Radio Slider Switch)            09 C8 
REPORT_COUNT (1)                                95 01 
REPORT_SIZE (1)                                 75 01 
INPUT (Data,Var,Abs)                            81 02 
REPORT_SIZE (7)                                 75 07 
INPUT (Cnst,Var,Abs)                            81 03 
USAGE (Wireless Radio LED)                      09 C7 
REPORT_SIZE (1)                                 75 01 
OUTPUT (Data,Var,Rel)                           91 02 
REPORT_SIZE (7)                                 75 07 
OUTPUT (Cnst,Var,Abs)                           91 03 
END_COLLECTION                                  C0

LED(无按钮或滑块)

USAGE_PAGE (Generic Desktop)                   05 01 
USAGE (Wireless Radio Controls)                09 0C 
COLLECTION (Application)                       A1 01 
LOGICAL_MINIMUM (0)                            15 00 
LOGICAL_MAXIMUM (1)                            25 01 
USAGE (Wireless Radio LED)                     09 C7 
REPORT_COUNT (1)                               95 01 
REPORT_SIZE (1)                                75 01 
OUTPUT (Data,Var,Rel)                          91 02 
REPORT_SIZE (7)                                75 07 
OUTPUT (Cnst,Var,Abs)                          91 03 
END_COLLECTION                                 C0

排查常见错误

提示 1:使用无线电管理器按钮时,电脑制造商应在按钮松开时发送一个 HID 信号,而不是在按钮按下时发送。 这是因为切换按钮通常是相对输入,而不是绝对输入。

提示 2:飞行模式无线电管理 HID 使用只能在移动系统(电池供电)上运行,并且需要 Windows 8 或更高版本的 Windows。

提示 #3:有关飞行模式单选管理按钮的更多信息,请参阅 Windows 8 键盘增强功能白皮书。

提示 4:有关按钮的更多信息,并确保使用了正确的硬件,请查看 Windows 8 系统徽标要求。