A pergunta básica que estou tentando responder é simples:
What is the maximum number of characters per second that can theoretically be written using an HID device in Windows 10?
Para responder a isso, devo descobrir como o sistema operacional Windows 10 lida com a entrada do teclado. Depois de percorrer centenas de páginas de documentação, estou mais confuso do que qualquer outra coisa.
A partir do conhecimento básico de eletrônica, sabe-se que, para um botão de hardware ser interpretado pelo software, ele pode ser verificado de duas maneiras: sondando e interrompendo .
O polling está repetidamente verificando o estado do hardware para uma mudança no valor de entrada.
Interrupções são eventos acionados por hardware que interrompem o código da linha principal para fornecer informações sobre uma alteração no hardware.
Como a pesquisa é extremamente ineficaz na manipulação de eventos que precisam ter uma resposta instantânea, as interrupções tendem a ser usadas. O polling não é usado para monitorar a mudança instantânea que exigiria uma frequência muito alta de pesquisa, muitas vezes por segundo usando muitos recursos do sistema.
Estou, portanto, achando que o sistema operacional Windows usa interrupções de hardware para lidar com impressoras de teclado. No entanto, a maioria dos botões mecânicos estão sujeitos a quedas e precisam de aproximadamente 10ms para serem debandados. Eu estou supondo que isso define um limite máximo teórico, de uma perspectiva de hardware para ~ 100Hz.
Mas e o software? Como o Windows 10 lida com as interrupções? Quantas interrupções podem ser geradas por segundo?