IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)

Запрос IOCTL_HID_GET_COLLECTION_DESCRIPTOR получает предварительно подготовленные данные коллекции верхнего уровня, которые драйвер класса HID извлекает из дескриптора отчета физического устройства во время инициализации устройства.

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

Основной код

IRP_MJ_DEVICE_CONTROL

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

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)

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

HidD_FreePreparsedData

HidD_GetPreparsedData