HidD_GetInputReport函数 (hidsdi.h)

HidD_GetInputReport例程从顶级集合返回输入报表。

仅使用此例程获取集合的当前状态。 如果应用程序尝试使用此例程持续获取输入报告,则报表可能会丢失。 有关详细信息,请参阅 通过用户模式应用程序获取 HID 报表

语法

BOOLEAN HidD_GetInputReport(
  [in]  HANDLE HidDeviceObject,
  [out] PVOID  ReportBuffer,
  [in]  ULONG  ReportBufferLength
);

参数

[in] HidDeviceObject

顶级集合的打开句柄。

[out] ReportBuffer

指向调用方分配的输入报表缓冲区的指针,调用方使用该缓冲区指定 HID 报表 ID,HidD_GetInputReport 使用 返回指定的输入报表。

有关此参数的详细信息,请参阅备注部分。

[in] ReportBufferLength

报表缓冲区的大小(以字节为单位)。 报表缓冲区必须足够大,才能保存输入报表以及一个指定报表 ID 的附加字节。 如果未使用报表 ID,则 ID 值为零。

返回值

如果成功,HidD_GetInputReport 返回 TRUE ;否则,它将返回 FALSE。 使用 GetLastError 获取扩展错误信息。

注解

正确的 ReportBufferLength 是由从 HidP_GetCaps 调用返回的顶级集合HIDP_CAPS结构的 InputReportByteLength 成员指定的。

在调用 HidD_GetInputReport 例程之前,调用方必须执行以下操作:

  • 如果 顶级集合 包含报表 ID,则调用方必须将 ReportBuffer 参数的第一个字节设置为非零报表 ID。
  • 如果 顶级集合 不包含报表 ID,则调用方必须将 ReportBuffer 参数的第一个字节设置为零。

输入报表在 ReportBuffer 参数中返回。 根据报表 ID,调用方通过调用以下函数之一来分析报表:

有关如何分析 HID 报表的示例,请参阅 HClient 示例应用程序。

只有用户模式应用程序才能调用 HidD_GetInputReport。 内核模式驱动程序可以使用 IOCTL_HID_GET_INPUT_REPORT请求。

有关详细信息,请参阅 解释 HID 报表

要求

要求
最低受支持的客户端 在 Windows XP 和更高版本的 Windows 中可用。
目标平台 通用
标头 hidsdi.h (包括 Hidsdi.h)
Library Hid.lib
DLL Hid.dll

另请参阅