HidP_GetUsageValueArray 函数 (hidpi.h)
HidP_GetUsageValueArray 例程从 HID 报表中提取与 HID 控件关联的数据 使用情况值数组。
语法
NTSTATUS HidP_GetUsageValueArray(
[in] HIDP_REPORT_TYPE ReportType,
[in] USAGE UsagePage,
[in] USHORT LinkCollection,
[in] USAGE Usage,
[in, out] PCHAR UsageValue,
[in] USHORT UsageValueByteLength,
[in] PHIDP_PREPARSED_DATA PreparsedData,
[in] PCHAR Report,
[in] ULONG ReportLength
);
参数
[in] ReportType
指定标识报表类型的 HIDP_REPORT_TYPE 枚举器值。
[in] UsagePage
[in] LinkCollection
指定包含使用值数组的 链接集合。 如果 LinkCollection 为非零,则例程仅搜索此链接集合中的使用情况值数组;否则,如果 LinkCollection 为零,则例程将搜索与 PreparsedData关联的 顶级集合 中的使用情况值数组。
[in] Usage
指定使用值数组的用法。
[in, out] UsageValue
指向调用方分配的缓冲区的指针,在该缓冲区中例程返回与使用情况值数组关联的数据。
[in] UsageValueByteLength
指定 UsageValue处缓冲区的长度(以字节为单位)。
[in] PreparsedData
指向顶级集合 预先分析的数据的指针。
[in] Report
指向包含值的报表的指针。
[in] ReportLength
指定位于报表 报表的长度(以字节为单位)。
返回值
HidP_GetUsageValueArray 返回以下状态值之一:
返回代码 | 描述 |
---|---|
|
例程已成功返回值的数据。 |
|
报表长度无效。 |
|
指定的报表类型无效。 |
|
请求的用法不是使用值数组。 |
|
UsageValue 缓冲区太小,无法容纳请求的使用情况。 |
|
该集合包含指定类型的报表中指定使用情况页上的使用情况值数组,但指定报表中没有此类用法。 |
|
预先分析的数据无效。 |
|
集合不包含指定报表类型的任何报表中指定使用情况页上的使用情况值数组。 |
言论
UsageValueByteLength 所需的大小(以字节为单位)通过将 BitSize 乘以 ReportCount 使用情况值数组 HIDP_VALUE_CAPS 结构的成员,并将结果向上舍入到最近的字节。
HidP_GetUsageValueArray 以小端顺序设置 UsageValue 缓冲区,从使用情况数据中最小有效位开始。 数据不是字节对齐的,并且会移位,以便数据中最小有效位位于 UsageValue 缓冲区的第一位。
HidP_GetUsageValueArray 旨在提取其报表计数大于 1 的使用情况的所有使用值。 若要提取其报表计数等于 1 的使用情况,请使用 HidP_GetUsageValue。
有关详细信息,请参阅 HID 集合。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows 2000 及更高版本的 Windows 中可用。 |
目标平台 | 普遍 |
标头 | hidpi.h (包括 Hidpi.h) |
库 | Hidparse.lib |
IRQL | <= DISPATCH_LEVEL |