IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)

Запрос IOCTL_HID_GET_INPUT_REPORT получает входной отчет из коллекции верхнего уровня.

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

Основной код

IRP_MJ_DEVICE_CONTROL

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

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

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

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

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

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

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

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

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

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

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

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

Размер выходного отчета.

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

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

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

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

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

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

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

Требования

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

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