IOCTL_HID_GET_COLLECTION_DESCRIPTOR - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// 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

NtDoc

No description available.

Windows Driver Kit DDI reference (ni-hidclass-ioctl_hid_get_collection_descriptor)

IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL

Description

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

Major code

Input buffer

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.

Input buffer length

Output buffer

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.

Output buffer length

The size, in bytes, of the preparsed data structure is obtained using IOCTL_HID_GET_COLLECTION_INFORMATION.

Input/output buffer

Input/output buffer length

Status block

The HID class driver sets the following fields of Irp->IoStatus:

Remarks

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.

See also

HidD_FreePreparsedData

HidD_GetPreparsedData