HidP_SetUsageValueArray 函数 (hidpi.h)
HidP_SetUsageValueArray例程在指定的 HID 报表中设置 HID 控件使用值数组。
语法
NTSTATUS HidP_SetUsageValueArray(
[in] HIDP_REPORT_TYPE ReportType,
[in] USAGE UsagePage,
[in] USHORT LinkCollection,
[in] USAGE Usage,
[in] PCHAR UsageValue,
[in] USHORT UsageValueByteLength,
[in] PHIDP_PREPARSED_DATA PreparsedData,
[in, out] PCHAR Report,
[in] ULONG ReportLength
);
参数
[in] ReportType
指定一个 HIDP_REPORT_TYPE 枚举器值,该值指示位于 Report 中的 HID 报表的类型。
[in] UsagePage
指定使用情况的 使用情况页 。
[in] LinkCollection
指定包含用法 的链接集合 。 如果 LinkCollection 为非零值,则例程仅设置此链接集合中的用法(如果存在)。 如果 LinkCollection 为零,则例程将设置它在与 PreparsedData 关联的顶级集合中找到的第一个用法。
[in] Usage
指定用法。
[in] UsageValue
指向调用方分配的缓冲区的指针,该缓冲区包含与使用值数组关联的数据。
[in] UsageValueByteLength
指定 UsageValue 缓冲区的长度(以字节为单位)。
[in] PreparsedData
指向顶级 预分析数据的指针。
[in, out] Report
指向 HID 报表的指针。
[in] ReportLength
指定位于 Report 的 HID 报表的大小(以字节为单位),该大小必须等于集合HIDP_CAPS结构中 HidP_GetCaps 返回的指定报表类型的 报表 长度。
返回值
HidP_SetUsageValueArray 返回以下状态值之一:
返回代码 | 说明 |
---|---|
|
例程已成功设置使用值。 |
|
报表长度无效。 |
|
指定的报表类型无效。 |
|
UsageValue 缓冲区的大小(以字节为单位)太小。 |
|
指定报表中不存在用法,但它确实存在于指定类型的其他报表中。 |
|
指定的用法不是使用值数组。 |
|
预分析的数据无效。 |
|
没有指定类型的报表。 |
|
为使用情况值数组指定的数据字段的报表大小不是 8 位的倍数。 |
|
指定报表类型的任何报表中都不存在此用法。 |
注解
UsageValue 缓冲区的所需大小(以字节为单位)通过将使用情况值数组HIDP_VALUE_CAPS结构的 BitSize 和 ReportCount 成员相乘,并将结果向上舍入到最接近的字节来确定。
HidP_SetUsageValueArray 仅支持使用值数组,其中数组的每个数据字段都是 8 位的倍数。
调用方必须完全按照在报表中发生的情况设置 UsageValue 缓冲区。
有关详细信息,请参阅 HID 集合。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows 2000 和更高版本的 Windows 中可用。 |
目标平台 | 通用 |
标头 | hidpi.h (包括 Hidpi.h) |
Library | Hidparse.lib |
IRQL | <= DISPATCH_LEVEL |