IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS IOCTL (hidclass.h)

The IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS request obtains the size of the input report queue for a top-level collection.

The input report queue is implemented as a ring buffer. If a collection transmits data to the HID class driver faster than the input reports are read, reports can be lost. The size of the input report queue can be adjusted using IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS.

For general information about HIDClass devices, see HID Collections.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

Parameters.DeviceIoControl.OutputBufferLength in the I/O stack location of the IRP indicates the size, in bytes, of the output buffer, which must be >= sizeof(ULONG).

Input buffer length

The size of the buffer is sizeof(ULONG).

Output buffer

Irp->AssociatedIrp.SystemBuffer points to a buffer that will receive the size of the report input queue.

Output buffer length

The size of the buffer is sizeof(ULONG).

Status block

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

  • Information is set to sizeof(ULONG) if the size of the report input queue is successfully retrieved.
  • Status is set to STATUS_SUCCESS if the transfer completed without error. Otherwise, it is set to an appropriate NTSTATUS error code.

Requirements

Requirement Value
Header hidclass.h (include Hidclass.h)

See also

HidD_SetNumInputBuffers