Поделиться через


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

См. также

HidD_FreePreparsedData

HidD_GetPreparsedData