Collection capability
The usage, reports, link collections, and controls define the capability of a collection. To obtain a summary of a collection's capability, a user-mode application or kernel-mode driver calls HidP_GetCaps to obtain a *HIDP_CAPS structure. This structure contains the following information about a collection's link collections, button capability arrays, and value capability arrays:
The collection's usage page and usage ID
The size, in bytes, of the collection's input, output, and feature reports (see HID API)
The number of HIDP_LINK_COLLECTION_NODE structures in the collection's link collection array
For each report type, the number of HIDP_BUTTON_CAPS structures in the button capability array returned by HidP_GetButtonCaps
For each report type, the number of HIDP_VALUE_CAPS structures in the value capability array returned by HidP_GetValueCaps
For each report type, the number of buttons and values supported by the collection, as specified by the NumberXxxDataIndices member.