The PC 97 standard requires that a computer's BIOS must detect and work with USB HID class keyboards that are designed to be used during the boot process.
Some keyboards implement the USB Boot Keyboard profile specified in the USB Device Class Definition for Human Interface Devices (HID) v1.11 and are explicitly configured to use the boot protocol.
These are limited to 6-key rollover (6KRO) and will interrupt the CPU every time the keyboard is polled (even if there is no state change) unless the USB controller is programmed to tell the keyboard to respond with negative acknowledgments, which the USB controller discards in hardware without interrupting the CPU, when there are no state changes to report.
This profile is intended to allow the BIOS to handle a USB keyboard in the absence of a USB-aware operating system.
The recommended profile for keyboards that are not in boot mode in this specification limits keyboards to 6KRO and causes them to respond to an interrupt with a status report at least every half second (again, even if there is no state change) in order to implement typematic (repeating the scancode when the key is pressed long enough) unless the USB controller is programmed to tell the keyboard to reply with negative acknowledgments whenever there are no state changes to report.
Even uninterruptible power supplies and software protection dongles[6] declare themselves under this class, despite the fact they often have no human interface at all.
[7] One of the benefits of a well-defined specification like the USB HID class is the abundance of device drivers available in most modern operating systems.
The USB HID class devices and their basic functions are defined in USB-IF documentation without any specific software in mind.
The inclusion of these generic drivers allows for faster deployment of devices and easier installation by end-users.
A boot device meets a minimum adherence to a basic protocol and will be recognized by a computer's BIOS.
Common devices such as keyboards and mice send reports that are compliant with standards set by the USB Implementers Forum (USB-IF).
At the USB level, there is a protocol for devices to announce their capabilities and the operating system to parse the data it gets.