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->AssociatedIrp.SystemBuffer 指向 ULONG 大小的输入缓冲区,该缓冲区接收输入报告队列的新缓冲区数。
参数.DeviceIoControl.InputBufferLength IRP 的 I/O 堆栈位置包含 Irp->AssociatedIrp.SystemBuffer的输入缓冲区的大小(以字节为单位)。 此大小必须 大小(ULONG)。
输入缓冲区长度
ULONG 的大小。
输出缓冲区
没有。
输出缓冲区长度
没有。
状态块
如果请求成功,HID 类驱动程序会将 Irp->IoStatus 的“状态 ”字段 设置为STATUS_SUCCESS;否则,它将 状态 字段设置为适当的 NTSTATUS 错误代码。
要求
要求 | 价值 |
---|---|
标头 | hidclass.h (include Hidclass.h) |