Report Descriptors

A report descriptor specifies the protocol and meaning assigned to HID control data. A report descriptor is composed of report items that define one or more top-level collections. Each collection defines one or more HID reports.

When the HID class driver initializes a functional device object (FDO) that represents a HIDClass device, it queries the device to obtain the device's report descriptors. The HID class driver creates a physical device object (PDO) for each top-level collection defined by the device's report descriptors.

To communicate with HIDClass devices that are used at boot time, such as keyboard and mouse devices, the system BIOS uses the HID boot protocol instead of the HID class report protocol. The boot protocol is a predefined HID class subclass protocol. The boot protocol standardizes the system startup process, eliminates the need for a parser in the BIOS, and reduces boot time. Because the boot protocol does not support a software key repeat capability, it uses a HID Set_Idle command to control key repeats reported by the hardware. Only the system BIOS uses the boot protocol.

After Windows installs the HID class driver, the HID class driver changes the communication protocol from the boot protocol to the report protocol. It also uses a HID Set_Idle command to set the idle to an indefinite duration. This ensures that key repeat functionality is handled by Windows and not by the device hardware.

Report Items

A report item is a component of a report descriptor that specifies information about HID collections and HID controls.

The following table lists the report items most often referenced in the WDK documentation. For the full definition of these items, see the USB HID Standard.

HID Report Item Type Description

Collection and End Collection items

Specify the start and end of a HID collection.

Delimiter item

Delimit the start and end of a set of aliased usages for a HID control. Such a control can be accessed by using any of its aliased usages.

Designator Index item

Specifies a designator in a device's physical descriptor.

Designator Minimum and Designator Maximum items

Specify indices that identify the inclusive lower bound and upper bound of a range of designators in a device's physical descriptor.

Feature item

Specifies information about feature reports.

Global item

Specifies default information about subsequent main items.

Input item

Specifies information about an input report.

Main item

Specifies an input, output, feature, collection, or end collection item.

Output item

Specifies information about an output report.

String Index item

Specifies a string descriptor in a device's string descriptor table.

String Minimum and String Maximum items

Specify indices that identify the inclusive lower bound and upper bound of a range of string descriptors in a device's string descriptor table.

Unit item

Specifies the units of a control value.

Usage Minimum and Usage Maximum items

Specify indices that identify the inclusive lower bound and upper bound of a range of usage IDs within a usage page.

Usage Page and Usage items

Specify the HID usage of a HID control.

 

 

 

Send comments about this topic to Microsoft

Build date: 4/28/2012