IOCTL_HID_SET_POLL_FREQUENCY_MSEC IOCTL (hidclass.h)
Запрос IOCTL_HID_SET_POLL_FREQUENCY_MSEC задает частоту опроса (в миллисекундах) для коллекции верхнего уровня.
Приложения пользовательского режима или драйверы в режиме ядра, которые выполняют нерегулярные оппортунистические операции чтения на опрашиваемом устройстве, должны предоставить интервал опроса, равный нулю. В таких случаях IOCTL_HID_SET_POLL_FREQUENCY_MSEC фактически не изменяет частоту опроса устройства; Но если данные отчета не устареют при чтении, чтение немедленно завершается с последними данными отчета для указанной коллекции. Если данные отчета устарели, они обновляются немедленно, не дожидаясь истечения интервала опроса, а чтение завершается новыми данными.
Если значение интервала опроса, указанного в IRP, не равно нулю, оно должно быть >равно = MIN_POLL_INTERVAL_MSEC и <= MAX_POLL_INTERVAL_MSEC.
Опрос может быть ограничен, если имеется несколько коллекций верхнего уровня.
Общие сведения об устройствах HIDClass см. в разделе Коллекции HID.
Основной код
Входной буфер
Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода IRP указывает размер входного буфера в байтах, который должен иметь >значение = sizeof(ULONG).
Irp->AssociatedIrp.SystemBuffer содержит новый интервал опроса.
Длина входного буфера
Значение больше или равно sizeof(ULONG).
Выходной буфер
Нет.
Длина выходного буфера
Нет.
Блок состояния
Драйвер класса HID задает элементу StatusIrp-IoStatus> значение STATUS_SUCCESS, если передача завершена без ошибок. В противном случае ему присваивается соответствующий код ошибки NTSTATUS.
Требования
Требование | Значение |
---|---|
Заголовок | hidclass.h (включая Hidclass.h) |