スキャンコード
PC/AT互換機のスキャンコードは、歴史的な経緯により複雑な体系となっている。
以下、スキャンコードの値を16進数2桁で表す。
USBでは、キーボードはヒューマン・インタフェース・デバイス (HID) デバイスクラスの一部として定義される。HIDデバイスクラスでスキャンコードに相当するものはUsageという用語で呼ばれている情報である。
Usageは32ビットの符号なし整数で、USB IFにより定義されリストされている。HID Usage Table
Usageの上位16ビットをUsage page下位16ビットをUsage IDと呼ぶ。 UsageはあるHIDデバイスが送信(あるいは受信)するある数値 (Report) がどのような物理状態を表現しているのかをホストに通知するために使われる。すなわちUsageは値 (report) の使われ方 (usage) を定義する。例えばマウスのようなデバイスの場合2つの-127〜+127の範囲のReportを送るとすると、それらのUsageは0x00010030 (Generic desktop-X) と0x00010031(Generic desktop-Y)であるとHIDデバイスはホストに送信する。 キーボードの場合にはReportの値として、Usageそのものを送信する。
Usageは32ビットありこれをすべて送ると不経済であるため省略して送ることができる。あるReportの集まりが共通のUsage Pageを持つUsageだった場合には、グループ化して表現でき、下位16ビットのUsage IDだけを送信することができる。またUsage PageやUsage IDの上位ビットが0だった場合にはそれを省略できる。