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 (include Hidclass.h) |