IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)

Запрос IOCTL_HID_GET_FEATURE возвращает отчет о функциях, связанный с коллекцией верхнего уровня.

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

Основной код

IRP_MJ_DEVICE_CONTROL

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

Элемент Parameters.DeviceIoControl.OutputBufferLength указывает размер в байтах выделенного выходного буфера запрашивающего объекта. Драйвер класса HID использует этот буфер для возврата отчета о функциях.

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

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

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

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

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

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

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

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

Элемент Irp->MdlAddress указывает на выделенный запросом выходной буфер, используемый драйвером класса HID для возврата отчета о функциях. Первый байт буфера, который запрашивающий использует для ввода идентификатора отчета или нуля, не изменяется. Отчет компонента, за исключением идентификатора отчета, если используются идентификаторы отчетов, возвращается в ((PUCHAR)Irp->MdlAddress + 1).

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

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer указывает на выделенный запросом выходной буфер, используемый мини-driver HID для возврата отчета о функциях.

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

Длина буфера, содержащего отчет.

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

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

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

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

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

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

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

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

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

Требования

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

См. также