Human Interface Device (HID) is a class under the Universal Serial Bus (USB) standard. DirectInput provides full support for devices that conform with HID.
Getting data from HID devices is substantially the same as with traditional devices. In addition, HID devices may accept output: for example, you can turn the keyboard LEDs on and off.
By querying a HID device, DirectInput is able to determine its usage page and usage. These are predefined codes that give information about the type and subtype of the device.
HID controls are grouped in collections. Collections may be nested.