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
指定位于 Report 的报表的长度 (以字节为单位)。
返回值
HidP_GetUsages 返回以下状态值之一:
返回代码 | 说明 |
---|---|
|
例程已成功返回设置为 ON 的所有按钮用法。 |
|
报表长度无效。 |
|
指定的报表类型无效。 |
|
UsageList 缓冲区太小,无法容纳指定使用情况页上当前设置为 ON 的所有用法。 |
|
集合包含指定类型的报表中指定用法页上的按钮,但指定报表中没有此类用法。 |
|
预先分析的数据无效。 |
|
集合不包含指定报表类型的任何报表中指定使用情况页上的任何按钮。 |
注解
用户模式应用程序和内核模式驱动程序调用 HidP_MaxUsageListLength ,以确定可为指定报表类型返回的最大按钮数。 或者,应用程序或驱动程序可以调用 HidP_GetUsages ,并将 (*UsageLength) 设置为零,以返回 UsageLength 中所需的长度。 换句话说, UsageLength 应该是指向 ULONG 值 0 以获取所需长度的有效指针。
应用程序或驱动程序根据顶级集合HIDP_CAPS结构中的XxxReportByteLength 成员确定所需的报表长度。
有关详细信息,请参阅 HID 集合。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows 2000 和更高版本的 Windows 中可用。 |
目标平台 | 通用 |
标头 | hidpi.h (包括 Hidpi.h) |
Library | Hidparse.lib |
IRQL | <= DISPATCH_LEVEL |