USB defines class codes used to identify a device’s functionality and to load a device driver based on that functionality. This enables a device driver writer to support devices from different manufacturers that comply with a given class code.
Device classes include:[ 4]
Class | Usage | Description | Examples |
---|---|---|---|
00h | Device | Unspecifiedclass 0 | (Device class is unspecified. Interface descriptors are used for determining the required drivers.) |
01h | Interface | Audio | Speaker , microphone , sound card |
02h | Both | Communications and CDC Control | Ethernet adapter , modem , serial port adapter |
03h | Interface | Human Interface Device (HID) | Keyboard , mouse , joystick |
05h | Interface | Physical Interface Device (PID) | Force feedback joystick |
06h | Interface | Image | Webcam , scanner |
07h | Interface | Printer | Laser printer , inkjet printer , CNC machine |
08h | Interface | Mass Storage | USB flash drive , memory card reader , digital audio player , digital camera , external drive |
09h | Device | USB hub | Full speed hub, hi-speed hub |
0Ah | Interface | CDC-Data | (This class is used together with class 02h - Communications and CDC Control.) |
0Bh | Interface | Smart Card | USB smart card reader |
0Dh | Interface | Content Security | - |
0Eh | Interface | Video | Webcam |
0Fh | Interface | Personal Healthcare | - |
DCh | Both | Diagnostic Device | USB compliance testing device |
E0h | Interface | Wireless Controller | Wi-Fi adapter, Bluetooth adapter |
EFh | Both | Miscellaneous | ActiveSync device |
FEh | Interface | Application Specific | IrDA Bridge, Test & Measurement Class (USBTMC)[ 5] |
FFh | Both | Vendor Specific | (This class code indicates that the device needs vendor specific drivers.) |
Note class 0 : Use class information in the Interface Descriptors. This base class is defined to be used in Device Descriptors to indicate that class information should be determined from the Interface Descriptors in the device.