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


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

Заполняет блок описания устройства описанием коллекции и соответствующими сведениями об идентификаторе отчета для указанного дескриптора отчета. Мини-driver 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 (include Hidpddi.h)
библиотеки Hidparse.lib
IRQL <= DISPATCH_LEVEL