Windows 11 键盘端口参数:MaximumPortsServiced 与 SendOutputToAllPorts
本页内容
MaximumPortsServiced 和 SendOutputToAllPorts 属于键盘类端口的旧式路径。在 Windows 11 25H2 中已确认 kbdclass.sys 的读取、默认值和作用范围。对于普通 USB 键盘,修改不会带来可测量的效果:建议保留默认的 3/1。
我们检查了什么
Section titled “我们检查了什么”我们检查了键盘类在初始化时会读取哪些参数、它们会改变什么行为,以及这些行为适用于哪些设备。另外还核对了它们是否影响轮询率和 USB HID 路径。
Windows 11 25H2 build 26200.9168,系统组件 kbdclass.sys。检查了键盘类的初始化以及设备枚举时对参数的访问。其他控制器、筛选驱动和 PS/2 组合未单独检查。
将参数与 kbdclass.sys 的代码进行静态比对,并在所研究的 Windows 11 25H2 的系统跟踪中观察其读取情况。
HKLM\SYSTEM\CurrentControlSet\Services\kbdclass\Parameters
| Value | Type | Windows 11 25H2 | 缺少记录时 | 作用 |
|---|---|---|---|---|
MaximumPortsServiced |
REG_DWORD |
3 |
1 |
class driver 所服务的 legacy ports 数量 |
SendOutputToAllPorts |
REG_DWORD |
1 |
0 |
将 output 广播到所有匹配的 ports |
driver 做什么
Section titled “driver 做什么”kbdclass.sys 在键盘类设备初始化时读取参数。MaximumPortsServiced 限制通过旧式端口机制建立的连接数量;当为 0 时,该机制中的枚举循环 KeyboardClass<N> 会被完全跳过。SendOutputToAllPorts 被解释为布尔值,决定是否将输出数据(包括 LED 指示灯命令)发送到所有已连接的端口设备。
这些参数不控制轮询率或 USB HID 报告间隔。现代 USB 键盘可以通过 HID 工作,完全不使用这一旧式机制。
两个参数都会在键盘类初始化时被读取。在所研究的版本中设置了值 3/1;删除记录会导致回退到 1/0。旧式端口路径不参与普通 USB HID 键盘的输入处理。
只有在具有多个旧式键盘端口的特殊配置中,提高上限才有意义。在其他情况下,修改通常不会产生效果。记录 0/0 会禁用此类端口的枚举和输出数据广播,但不会缩短输入路径,也不会改变轮询率。对于普通键盘,默认的 3/1 就足够了。
已确认的内容
Section titled “已确认的内容”- 所研究版本中参数的路径、类型和默认值。
- 键盘类初始化时对参数的读取。
- 参数在旧式端口路径范围内的作用,包括输出数据广播。
- 驱动在缺少记录时使用的回退值
1/0。
未确认的内容
Section titled “未确认的内容”- 对轮询率和 USB HID 报告间隔的影响。
- 对 PS/2、第三方筛选器和其他控制器的效果。
- 修改对游戏或日常工作的实际用处。
对于普通键盘,请保留默认的 3/1:修改不会缩短输入路径,也不会改变轮询率。仅在具有多个旧式端口的特殊配置中使用记录 0/0,并提前检查所需的设备。
将 MaximumPortsServiced 和 SendOutputToAllPorts 恢复为表中的值,然后重启 Windows。删除记录不会恢复出厂值 3/1:驱动会使用回退值 1/0。
参数的读取已在 Windows 11 25H2 的 kbdclass.sys 中得到确认。所有 USB HID、PS/2 控制器和筛选驱动的组合未单独检查。
在所研究的 Windows 中设置了值 3/1。如果删除记录,驱动会使用自己的回退值 1/0,因此删除不会使该系统恢复到出厂设置。
如何复现观察中的动态部分——参见如何自行检查。
研究与所用工具归 BoosterX 开发者所有,因此开发者对结果存在直接利益关系。方法和适用范围已在上文说明,结论可通过公开数据和所列公开来源进行验证。
- Keyboard class driver,Microsoft Learn,检查于 2026-09-01。
公开来源检查于:2026-09-02。
- 2026-09-20: 添加了关于利益冲突的免责声明,以及方法中自行检查动态观察的链接。
- 2026-09-02: 首次发布;确认了参数的读取和作用范围,添加了适用范围和回退值。
