// hidclass.h
// CTL_CODE(0x000b, 0x064, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_HID_GET_COLLECTION_DESCRIPTOR 0x000B0193
View the official Windows Driver Kit DDI reference
No description available.
The IOCTL_HID_GET_COLLECTION_DESCRIPTOR request obtains a top-level collection's preparsed data, which the HID class driver extracted from the physical device's report descriptor during device initialization.
For general information about HIDClass devices, see HID Collections.
Parameters.DeviceIoControl.OutputBufferLength in the I/O stack location of the IRP indicates the size, in bytes, of the output buffer specified by Irp->UserBuffer.
Irp->UserBuffer is a PVOID pointer to a requester-allocated buffer that the HID class driver uses to return a variable length _HIDP_PREPARSED_DATA structure. This buffer must be allocated from nonpaged pool.
The size, in bytes, of the preparsed data structure is obtained using IOCTL_HID_GET_COLLECTION_INFORMATION.
The HID class driver sets the following fields of Irp->IoStatus:
The _HIDP_PREPARSED_DATA structure contains a top-level collection's preparsed data.
typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
A user-mode application calls HidD_GetPreparsedData to obtain a top-level collection's preparsed data in a variable length _HIDP_PREPARSED_DATA structure.
A kernel-mode driver uses an IOCTL_HID_GET_COLLECTION_DESCRIPTOR request to obtain a pointer to a top-level collection's preparsed data.
The internal structure of a _HIDP_PREPARSED_DATA structure is reserved for internal system use.