IOCTL_HID_SET_FEATURE IOCTL (hidclass.h)

Запрос IOCTL_HID_SET_FEATURE отправляет отчет о функциях в коллекцию верхнего уровня.

Общие сведения об устройствах HIDClass см. в разделе Коллекции HID.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Элементу Parameters.DeviceIoControl.InputBufferLength присваивается размер в байтах входного буфера, выделенного инициатором запроса, который содержит отчет о функциях класса HID.

Размер входного буфера в байтах. Буфер должен быть достаточно большим, чтобы вместить отчет о функциях плюс один дополнительный байт, указывающий ненулевой идентификатор отчета. Если идентификатор отчета не используется, значение идентификатора равно нулю.

Элемент Irp->AssociatedIrp.SystemBuffer указывает на входной буфер, содержащий отчет о функциях. Если коллекция включает идентификаторы отчетов, инициатор запроса должен задать для первого байта буфера ненулевой идентификатор отчета; В противном случае инициатор запроса должен задать для первого байта нулевое значение. Отчет о функциях находится по адресу ((PUCHAR)ReportBuffer + 1).

Обработка мини-драйвера

Irp->UserBuffer указывает на структуру HID_XFER_PACKET , которую драйвер класса HID использует для ввода следующих элементов:

Длина входного буфера

Размер входного буфера в байтах. Буфер должен быть достаточно большим, чтобы вместить выходной отчет плюс один дополнительный байт, указывающий ненулевой идентификатор отчета. Если идентификатор отчета не используется, значение идентификатора равно нулю.

Обработка мини-драйвера

Размер структуры HID_XFER_PACKET .

Выходной буфер

Нет.

Длина выходного буфера

Нет.

Блок состояния

Драйвер класса HID задает следующие поля :Irp->IoStatus

  • Для сведений задано значение 0.
  • Для параметра Состояние устанавливается значение STATUS_SUCCESS, если передача завершена без ошибок. В противном случае устанавливается соответствующий код ошибки NTSTATUS.

Обработка мини-драйвера

Мини-накопители HID, которые выполняют ввод-вывод на устройство, задают следующие поля Irp->IoStatus:

  • Для сведений задается количество байтов, передаваемых на устройство.
  • Для параметра Состояние устанавливается значение STATUS_SUCCESS, если передача завершена без ошибок. В противном случае ему присваивается соответствующий код ошибки NTSTATUS.

Мини-драйверы HID, которые вызывают другие драйверы с этим IOCTL для выполнения ввода-вывода, должны убедиться, что поле Information блока состояния правильно и не изменяет содержимое поля Состояние .

Требования

Требование Значение
Заголовок hidclass.h (включая Hidclass.h)

См. также раздел