HID

USBキーボードとのやりとりについては"Device Class Definition for Human Interface Devices"に書いてある。
"HID Usage Table"を見ればキーのUsageIDがわかる。例えば,"a"なら04h。

WikipediaによるとBoot Protocolのみ対応のキーボードが多いらしい。Boot ProtocolとはBIOSとやりとりするためのもので,これを守っていればOSが起動していなくてもキーボードが使える。逆に言えば,システムがブートする前にも使える必要のあるキーボードはBoot Protocolをサポートしていなければならない。
OSが立ち上がった後はBoot Protocolでやりとりする必要はかならずしもなく,Report Protocolに変更しても良い。Boot ProtocolはReport Protocolのサブセットなので,OSがReport Protocolをサポートしている限りはBoot Protocolでも問題ない。

Boot Protocolの入力Reportに入れられるキーコードはモディファイアキーを除いて6個。なので同時打鍵はこれに制限される。ちなみにモディファイアキーはCtrl,Alt,Shift,GUIの4つで,それぞれ左右にあるので全部で8つ。GUIとはWindowsならWindowsキーMacならCommandキー。普通のキーはキーコードがそのまま送られるが,モディファイアキーはビットマップで送られるという違いがある。