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 枚举器值,该值指示位于 报表的 HID 报表的类型。

[in] UsagePage

指定使用情况 使用情况页

[in] LinkCollection

指定包含用法的 链接集合。 如果 LinkCollection 为非零,则例程仅设置此链接集合中的用法(如果存在)。 如果 LinkCollection 为零,则例程将设置它在与 PreparsedData关联的 顶级集合 中查找的第一个用法。

[in] Usage

指定用法。

[in] UsageValue

指向调用方分配的缓冲区的指针,该缓冲区包含与使用值数组关联的数据。

[in] UsageValueByteLength

指定 UsageValue 缓冲区的长度(以字节为单位)。

[in] PreparsedData

指向顶级 预分析数据的指针。

[in, out] Report

指向 HID 报表的指针。

[in] ReportLength

指定位于报表 报表的 HID 报表的大小(以字节为单位),该报表类型必须与集合 HIDP_CAPS 结构中返回的指定报表 HidP_GetCaps 类型的报表长度相等。

返回值

HidP_SetUsageValueArray 返回以下状态值之一:

返回代码 描述
HIDP_STATUS_SUCCESS
例程已成功设置使用值。
HIDP_STATUS_INVALID_REPORT_LENGTH
报表长度无效。
HIDP_STATUS_INVALID_REPORT_TYPE
指定的报表类型无效。
HIDP_STATUS_BUFFER_TOO_SMALL
UsageValue 缓冲区的大小(以字节为单位)。
HIDP_STATUS_INCOMPATIBLE_REPORT_ID
指定的报表中不存在该用法,但它确实存在于指定类型的其他报表中。
HIDP_STATUS_NOT_VALUE_ARRAY
指定的用法不是使用值数组。
HIDP_STATUS_INVALID_PREPARSED_DATA
预先分析的数据无效。
HIDP_STATUS_REPORT_DOES_NOT_EXIST
没有指定类型的报表。
HIDP_STATUS_NOT_IMPLEMENTED
为使用值数组指定的数据字段的报告大小不是八位的倍数。
HIDP_STATUS_USAGE_NOT_FOUND
指定报表类型的任何报表中不存在此用法。

言论

UsageValue 缓冲区所需的大小(以字节为单位)通过将 BitSize 乘以一起,ReportCount 使用值数组 HIDP_VALUE_CAPS 结构的成员,并将结果向上舍入到最近的字节。

HidP_SetUsageValueArray 仅支持使用值数组,其中数组的每个数据字段是 8 位的倍数。

调用方必须设置 UsageValue 缓冲区,就像报表中应一样。

有关详细信息,请参阅 HID 集合

要求

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

另请参阅

HidP_SetScaledUsageValue

HidP_SetUsageValue

_HIDP_PREPARSED_DATA