HidP_SetData函数 (hidpi.h)

HidP_SetData例程在 HID 报表中设置一组指定的 HID 控制按钮和值用法。

语法

NTSTATUS HidP_SetData(
  [in]      HIDP_REPORT_TYPE     ReportType,
  [in, out] PHIDP_DATA           DataList,
  [in, out] PULONG               DataLength,
  [in]      PHIDP_PREPARSED_DATA PreparsedData,
  [in]      PCHAR                Report,
  [in]      ULONG                ReportLength
);

参数

[in] ReportType

指定一个 HIDP_REPORT_TYPE 枚举器值,该值指示位于 Report 处的 HID 报表的类型。

[in, out] DataList

指向调用方分配的 HIDP_DATA 结构的数组的指针,这些结构指定要设置的按钮和用法值。

[in, out] DataLength

在输入时指定 DataList 数组中的成员数。 有关输出值的信息,请参阅“备注”部分。

[in] PreparsedData

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

[in] Report

指向 HID 报表的指针。

[in] ReportLength

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

返回值

如果成功 设置 DataList 指定的所有控件数据,HidP_SetData将返回HIDP_STATUS_SUCCESS。

如果 其中一个输入参数无效,HidP_SetData将返回以下状态值之一:

返回代码 说明
HIDP_STATUS_INVALID_PREPARSED_DATA
PreparsedData 指定的预分析数据无效。
HIDP_STATUS_INVALID_REPORT_LENGTH
HID 报表的大小(以字节为单位)不等于集合的 HIDP_CAPS 结构中为指定报表类型指定的长度。
HIDP_STATUS_INVALID_REPORT_TYPE
ReportType 无效。
HIDP_STATUS_REPORT_DOES_NOT_EXIST
集合不包含指定类型的报表。
 

如果无法设置指定的按钮或用法值之一,HidP_SetData将返回以下错误值之一:

返回代码 说明
HIDP_STATUS_BUFFER_TOO_SMALL
数组中的按钮未设置为 ON (1) ,因为所有数组字段都已用于为其他按钮编制索引。
HIDP_STATUS_BUTTON_NOT_PRESSED
DataList 成员指定将按钮设置为 OFF (零) ,但该按钮已设置为 OFF。
HIDP_STATUS_DATA_INDEX_NOT_FOUND
DataList 成员的数据索引无效。
HIDP_STATUS_INCOMPATIBLE_REPORT_ID
按钮或使用情况值包含在报表中,但它不在指定的报表中。
HIDP_STATUS_IS_VALUE_ARRAY
数据索引指定 使用情况值数组

注解

除使用情况值数组外,用户模式应用程序或内核模式驱动程序可以使用 HidP_SetData 在报表中设置按钮和使用情况值。 若要设置使用情况值数组,应用程序或驱动程序必须使用 HidP_SetUsageValueArray

HidP_SetData 按如下所示设置 DataLength 的输出值:

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

要求

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

另请参阅

HIDP_DATA

HidP_GetData

HidP_SetButtons

HidP_SetUsageValueArray

HidP_SetUsages

HidP_UnsetButtons

HidP_UnsetUsages

_HIDP_PREPARSED_DATA