![收集的背景信息](https://linux22.com/image/1520853/%E6%94%B6%E9%9B%86%E7%9A%84%E8%83%8C%E6%99%AF%E4%BF%A1%E6%81%AF.png)
我想要回答的根本问题很简单:
在 Windows 10 中使用 HID 设备理论上每秒可以写入的最大字符数是多少?
为了回答这个问题,我必须弄清楚 Windows 10 操作系统如何处理键盘输入。翻阅了数百页文档后,我感到无比困惑。
收集的背景信息
根据基本的电子知识,我们知道,硬件按钮按下是否能被软件解释,可以通过两种方式检查:轮询和中断。
轮询是反复检查硬件状态以了解输入值的变化。
中断是硬件触发的事件,它中断主线代码以提供有关硬件变化的信息。
由于轮询在处理需要即时响应的事件时效率极低,因此倾向于使用中断。不使用轮询是因为监控即时变化需要非常高的轮询频率,每秒多次轮询会占用太多系统资源。
因此,我猜测 Windows 操作系统使用硬件中断来处理键盘按下。但是,大多数机械按钮都会发生抖动,需要大约 10ms 才能消除抖动。我猜测,从硬件角度来看,这设定了一个最大理论限制,约为 100Hz。
但是软件呢?Windows 10 如何处理中断?每秒可以生成多少个中断?