HidP_GetUsages函数 (hidpi.h)

HidP_GetUsages 例程返回所有 HID 控件按钮的列表,该按钮 用法 位于指定的 使用情况页上,并设置为 HID 报表中的 ON。

语法

NTSTATUS HidP_GetUsages(
  [in]      HIDP_REPORT_TYPE     ReportType,
  [in]      USAGE                UsagePage,
  [in]      USHORT               LinkCollection,
  [out]     PUSAGE               UsageList,
  [in, out] PULONG               UsageLength,
  [in]      PHIDP_PREPARSED_DATA PreparsedData,
  [out]     PCHAR                Report,
  [in]      ULONG                ReportLength
);

参数

[in] ReportType

指定标识报表类型的 HIDP_REPORT_TYPE 枚举器值。

[in] UsagePage

指定按钮用法 使用情况页。 例程仅返回有关此使用情况页上的按钮的信息。

[in] LinkCollection

指定按钮用法 链接集合。 如果 LinkCollection 为非零,则例程仅返回有关此链接集合包含的按钮的信息;否则,如果 LinkCollection 为零,则例程将返回与 PreparsedData关联的 顶级 集合中的所有按钮的相关信息。

[out] UsageList

指向调用方分配的缓冲区的指针,该例程使用该缓冲区返回设置为 ON 并属于由 UsagePage指定的使用页的所有按钮的用法。

[in, out] UsageLength

指定 UsageList 缓冲区的输入、长度(以数组元素为单位)。 指定在输出时,在指定使用情况页上设置为 ON 的按钮数。

[in] PreparsedData

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

[out] Report

指向报表的指针。

[in] ReportLength

指定位于报表 报表的长度(以字节为单位)。

返回值

HidP_GetUsages 返回以下状态值之一:

返回代码 描述
HIDP_STATUS_SUCCESS
例程已成功返回设置为 ON 的所有按钮用法。
HIDP_INVALID_REPORT_LENGTH
报表长度无效。
HIDP_INVALID_REPORT_TYPE
指定的报表类型无效。
HIDP_STATUS_BUFFER_TOO_SMALL
UsageList 缓冲区太小,无法保留当前在指定使用情况页上设置为 ON 的所有用法。
HIDP_STATUS_INCOMPATIBLE_REPORT_ID
集合包含指定类型报表中指定使用情况页上的按钮,但指定报表中没有此类用法。
HIDP_STATUS_INVALID_PREPARSED_DATA
预先分析的数据无效。
HIDP_STATUS_USAGE_NOT_FOUND
集合不包含指定报表类型的任何报表中指定使用情况页上的任何按钮。

言论

用户模式应用程序和内核模式驱动程序调用 HidP_MaxUsageListLength,以确定可为指定报表类型返回的最大按钮数。 或者,应用程序或驱动程序可以调用 HidP_GetUsages 并将 (*UsageLength) 设置为零,以返回 UsageLength中所需的长度。 换句话说,UsageLength 应该是指向 ULONG 值 0 获取所需长度的有效指针。

应用程序或驱动程序从顶级集合 HIDP_CAPS 结构中的 XxxReportByteLength 成员来确定所需的报表长度。

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

要求

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

另请参阅

HidP_GetButtons

HidP_GetButtonsEx

HidP_GetCaps

HidP_GetScaledUsageValue

HidP_GetUsageValue

HidP_GetUsageValueArray

HidP_GetUsagesEx

HidP_MaxUsageListLength

_HIDP_PREPARSED_DATA