IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS IOCTL (hidclass.h)

IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS请求获取 顶级集合的输入报告队列的大小。

输入报告队列作为环形缓冲区实现。 如果集合将数据传输到 HID 类驱动程序的速度比读取输入报告快,则报表可能会丢失。 可以使用 IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS调整输入报告队列的大小。

有关 HIDClass 设备的常规信息,请参阅 HID 集合

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

IRP 的 I/O 堆栈位置中的 Parameters.DeviceIoControl.OutputBufferLength 指示输出缓冲区的大小(以字节为单位),输出缓冲区的大小必须为 >= sizeof(ULONG)。

输入缓冲区长度

缓冲区的大小为 sizeof(ULONG)。

输出缓冲区

Irp->AssociatedIrp.SystemBuffer 指向将接收报表输入队列大小的缓冲区。

输出缓冲区长度

缓冲区的大小为 sizeof(ULONG)。

状态块

HID 类驱动程序设置 Irp->IoStatus的以下字段:

  • 如果成功检索报表输入队列的大小,则 信息 设置为 sizeof(ULONG)。
  • 如果传输已完成且未出错,状态 设置为STATUS_SUCCESS。 否则,它设置为适当的 NTSTATUS 错误代码。

要求

要求 价值
标头 hidclass.h (include Hidclass.h)

另请参阅

HidD_SetNumInputBuffers