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).

обработки мини-driver

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

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

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

обработки мини-driver

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

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

Никакой.

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

Никакой.

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

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

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

обработки мини-driver

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

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

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

Требования

Требование Ценность
заголовка hidclass.h (include Hidclass.h)

См. также