IOCTL_HID_SET_POLL_FREQUENCY_MSEC IOCTL (hidclass.h)

IOCTL_HID_SET_POLL_FREQUENCY_MSEC请求为 顶级集合设置轮询频率(以毫秒为单位)。

在轮询设备上执行不规则机会读取的用户模式应用程序或内核模式驱动程序必须提供 0 的轮询间隔。 在这种情况下,IOCTL_HID_SET_POLL_FREQUENCY_MSEC实际上不会更改设备的轮询频率;但是,如果读取报表数据时报表数据不过时,则读取会立即完成,其中包含所指示集合的最新报表数据。 如果报表数据已过时,则会立即刷新该数据,而无需等待轮询间隔的过期,并且已使用新数据完成读取。

如果 IRP 中提供的轮询间隔的值不是零,则必须 >= MIN_POLL_INTERVAL_MSEC,<= MAX_POLL_INTERVAL_MSEC。

如果有多个顶级集合,轮询可能会受到限制。

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

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

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

Irp->AssociatedIrp.SystemBuffer 包含新的轮询间隔。

输入缓冲区长度

大于或等于 sizeof(ULONG) 的值。

输出缓冲区

没有。

输出缓冲区长度

没有。

状态块

HID 类驱动程序将 状态 成员 Irp->IoStatus 设置为STATUS_SUCCESS(如果传输已完成且没有错误)。 否则,它设置为适当的 NTSTATUS 错误代码。

要求

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

另请参阅

IOCTL_HID_GET_POLL_FREQUENCY_MSEC