IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL (hidclass.h)

IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS请求设置 顶级集合的输入报告队列的缓冲区数。

每个输入报告队列都作为环形缓冲区实现。 如果集合将数据传输到 HID 类驱动程序的速度比驱动程序更快地读取它,则某些数据可能会丢失。 若要防止此类丢失,可以使用IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS请求来调整输入报告队列包含的缓冲区数。 HID 类驱动程序至少需要两个输入缓冲区。 在 Windows 2000 上,HID 类驱动程序支持的最大输入缓冲区数为 200,在 Windows XP 及更高版本上,HID 类驱动程序支持的最大输入缓冲区数为 512。 输入缓冲区的默认数目为 32。

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

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Irp->AssociatedIrp.SystemBuffer 指向 ULONG 大小的输入缓冲区,该缓冲区接收输入报告队列的新缓冲区数。

参数.DeviceIoControl.InputBufferLength IRP 的 I/O 堆栈位置包含 Irp->AssociatedIrp.SystemBuffer的输入缓冲区的大小(以字节为单位)。 此大小必须 大小(ULONG)。

输入缓冲区长度

ULONG 的大小。

输出缓冲区

没有。

输出缓冲区长度

没有。

状态块

如果请求成功,HID 类驱动程序会将 Irp->IoStatus 的“状态 ”字段 设置为STATUS_SUCCESS;否则,它将 状态 字段设置为适当的 NTSTATUS 错误代码。

要求

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

另请参阅

HidD_GetNumInputBuffers