HidP_GetCollectionDescription 函数 (hidpddi.h)

使用集合说明和指定报表描述符的相应报表 ID 信息填充设备说明块。 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_DEVICE_DESC的每个HIDP_COLLECTION_DESC数组元素、每个HIDP_COLLECTION_DESC中的每个HIDP_PREPARSED_DATAHIDP_DEVICE_DESC的每个HIDP_REPORT_IDS数组元素。

[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
在报告描述符中检测到错误。 请参阅 HIDP_DEVICE_DESC 结构的 Dbg 字段中的错误代码。
STATUS_BUFFER_TOO_SMALL
在需要更多数据时找到报表描述符的末尾。
STATUS_INSUFFICIENT_RESOURCES
未能分配内存。
STATUS_ILLEGAL_INSTRUCTION
无法分析报表描述符中的项。
HIDP_STATUS_INVALID_REPORT_TYPE
在描述符中找到报表 ID 为 0。

注解

对于 由 ReportDesc 参数指定的原始报表描述符, HidP_GetCollectionDescription 使用调用方分配的集合描述符的链接列表以及给定报表描述符描述的相应报表 ID 信息填充 DeviceDescription 块。 集合信息和 ReportID 信息的内存是根据 PoolType 值分配的。

要求

要求
最低受支持的客户端 在 Windows 2000 和更高版本的 Windows 中可用。
目标平台 通用
标头 hidpddi.h (包括 Hidpddi.h)
Library Hidparse.lib
IRQL <= DISPATCH_LEVEL