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