IOCTL_HID_GET_INPUT_REPORT control code
IOCTL_HID_GET_INPUT_REPORT returns an input report from a HID Class device.
For general information about HIDClass devices, see HID Collections.
Irp->UserBuffer points to a HID_XFER_PACKET structure that the HID class driver uses to input the following members:
Points to a requester-allocated output buffer that a HID minidriver uses to return an input report.
Specifies the size, in bytes, of the output buffer.
Specifies a report ID associated with a top-level collection.
((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer points to the requester-allocated output buffer that the HID minidriver uses to return the input report.
HID minidrivers that carry out the I/O to the device set the following fields of Irp->IoStatus:
Information is set to the number of bytes transferred from the device.
Status is set to STATUS_SUCCESS if the transfer completed without error. Otherwise, it is set to an appropriate NTSTATUS error code.
HID minidrivers that call other drivers with this IOCTL to carry out the I/O to their device, should ensure that the Information field of the status block is correct and not change the contents of the Status field.
IOCTL_HID_GET_INPUT_REPORT is used for making a one-time request to get the current, or the most recent report from the device. This request is typically sent down by the HID client (via HIDCLASS).