Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запрос IOCTL_HID_GET_FEATURE возвращает отчет о функциях, связанный с коллекцией верхнего уровня.
Общие сведения о устройствах HIDClass см. в коллекций HID.
Основной код
Входной буфер
Элемент 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) |