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

[in, out] DataList

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

[in, out] DataLength

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

[in] PreparsedData

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

[in] Report

指向 HID 报表的指针。

[in] ReportLength

指定位于报表 报表的 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)
Hidparse.lib
IRQL PASSIVE_LEVEL

另请参阅

HIDP_DATA

HidP_GetData

HidP_SetButtons

HidP_SetUsageValueArray

HidP_SetUsages

HidP_UnsetButtons

HidP_UnsetUsages

_HIDP_PREPARSED_DATA