IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)

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

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

Основной код

IRP_MJ_DEVICE_CONTROL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Требования

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

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