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-value,指示从中分配链接列表内存的池类型。 这包括 HIDP_DEVICE_DESC的每个 HIDP_COLLECTION_DESC 数组元素,每个 HIDP_COLLECTION_DESC中的每个 HIDP_PREPARSED_DATA,每个 HIDP_REPORT_IDS 数组元素 HIDP_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
报告描述符中检测到错误。 请参阅 HIDP_DEVICE_DESC 结构的 Dbg 字段中的错误代码。
STATUS_BUFFER_TOO_SMALL
当报表描述符需要更多数据时,找到报告描述符的末尾。
STATUS_INSUFFICIENT_RESOURCES
未能分配内存。
STATUS_ILLEGAL_INSTRUCTION
未能分析报表描述符中的项。
HIDP_STATUS_INVALID_REPORT_TYPE
在描述符中找到 0 的报告 ID。

言论

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

要求

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