функция HidP_GetCollectionDescription (hidpddi.h)

Заполняет блок описания устройства описанием коллекции и соответствующими сведениями об идентификаторе отчета для указанного дескриптора отчета. Мини-диск HID обычно не требуется вызывать эту функцию. Вместо этого он возвращает дескриптор отчета драйверу Hidclass в ответ на IOCTL_HID_GET_REPORT_DESCRIPTOR.

Синтаксис

NTSTATUS HidP_GetCollectionDescription(
  [in]  PHIDP_REPORT_DESCRIPTOR ReportDesc,
  [in]  ULONG                   DescLength,
  [in]  POOL_TYPE               PoolType,
  [out] PHIDP_DEVICE_DESC       DeviceDescription
);

Параметры

[in] ReportDesc

Указатель на массив UCHAR, содержащий необработанный дескриптор отчета.

[in] DescLength

Длина массива дескрипторов отчета.

[in] PoolType

Значение POOL_TYPE, указывающее тип пула, из которого выделяется память для связанного списка. Сюда входят каждый элемент массива HIDP_COLLECTION_DESCHIDP_DEVICE_DESC, каждый HIDP_PREPARSED_DATA в каждом HIDP_COLLECTION_DESC, каждый элемент массива HIDP_REPORT_IDSHIDP_DEVICE_DESC.

[out] DeviceDescription

Указатель на структуру HIDP_DEVICE_DESC , заполненную блоком описания устройства, заполненным дескрипторами коллекции в виде связанных списков. Это структура, выделенная вызывающим объектом. Однако ее HIDP_COLLECTION_DESC элементы массива и элементы HIDP_REPORT_IDS массива выделяются этой функцией.

Возвращаемое значение

HidP_GetCollectionDescription может вернуть одно из следующих значений: TRUE , если он успешно заполняет блок описания устройства. В противном случае возвращается значение FALSE.

Возвращаемое значение Описание
STATUS_SUCCESS
Успешно проанализирован дескриптор отчета и выделены блоки памяти, необходимые для описания устройства.
STATUS_NO_DATA_DETECTED
Не удалось найти коллекции верхнего уровня в дескрипторе отчета.
STATUS_COULD_NOT_INTERPRET
В дескрипторе отчета обнаружена ошибка. См. код ошибки в поле Dbg структуры HIDP_DEVICE_DESC .
STATUS_BUFFER_TOO_SMALL
Найден конец дескриптора отчета, когда ожидалось больше данных.
STATUS_INSUFFICIENT_RESOURCES
Не удалось выделить память.
STATUS_ILLEGAL_INSTRUCTION
Не удалось проанализировать элемент в дескрипторе отчета.
HIDP_STATUS_INVALID_REPORT_TYPE
В дескрипторе обнаружен идентификатор отчета 0.

Комментарии

Для необработанного дескриптора отчета, заданного параметром ReportDesc , HidP_GetCollectionDescription заполняет блок DeviceDescription выделенным вызывающим списком дескрипторов коллекции и соответствующими сведениями об идентификаторе отчета, которые описываются заданным дескриптором отчета. Память для сведений о коллекции и reportID выделяется на основе значения PoolType .

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях Windows.
Целевая платформа Универсальное
Верхняя часть hidpddi.h (включая Hidpddi.h)
Библиотека Hidparse.lib
IRQL <= DISPATCH_LEVEL