IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)
Запрос IOCTL_HID_GET_COLLECTION_DESCRIPTOR получает предварительно подготовленные данные коллекции верхнего уровня, которые драйвер класса HID извлекает из дескриптора отчета физического устройства во время инициализации устройства.
Общие сведения об устройствах HIDClass см. в разделе Коллекции HID.
Основной код
Входной буфер
Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода IRP указывает размер выходного буфера в байтах, заданный параметром Irp-UserBuffer>.
Выходной буфер
Irp->UserBuffer — это pvoid-указатель на буфер, выделенный инициатором запроса, который драйвер класса HID использует для возврата переменной длины _HIDP_PREPARSED_DATA структуре. Этот буфер должен быть выделен из непагрегированного пула.
Длина выходного буфера
Размер структуры предварительно подготовленных данных в байтах получается с помощью IOCTL_HID_GET_COLLECTION_INFORMATION.
Блок состояния
Драйвер класса HID задает следующие поля Irp-IoStatus>:
- Для сведений задан размер предварительно подготовленных данных в байтах.
- Состояние имеет значение STATUS_SUCCESS, если подготовленные данные были получены без ошибок. В противном случае устанавливается соответствующий код ошибки NTSTATUS. Если буфер вывода, предоставленный инициатором запроса, недостаточно велик для хранения подготовленных данных, состояние устанавливается в STATUS_INVALID_BUFFER_SIZE.
Комментарии
Структура _HIDP_PREPARSED_DATA содержит подготовленные данныеколлекции верхнего уровня.
typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
Приложение в пользовательском режиме вызывает HidD_GetPreparsedData для получения предварительно подготовленных данных коллекции верхнего уровня в переменной длине _HIDP_PREPARSED_DATA структуре.
Драйвер в режиме ядра использует запрос IOCTL_HID_GET_COLLECTION_DESCRIPTOR для получения указателя на подготовленные данные коллекции верхнего уровня.
Внутренняя структура _HIDP_PREPARSED_DATA зарезервирована для внутреннего системного использования.
Требования
Требование | Значение |
---|---|
Заголовок | hidclass.h (включая Hidclass.h) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по