GetRawInputDeviceInfoA 函数 (winuser.h)

检索有关原始输入设备的信息。

语法

UINT GetRawInputDeviceInfoA(
  [in, optional]      HANDLE hDevice,
  [in]                UINT   uiCommand,
  [in, out, optional] LPVOID pData,
  [in, out]           PUINT  pcbSize
);

参数

[in, optional] hDevice

类型:HANDLE

原始输入设备的句柄。 这来自 RAWINPUTHEADERhDevice 成员,或来自 GetRawInputDeviceList

[in] uiCommand

类型:UINT

指定在 pData中返回的数据。 此参数可以是下列值之一。

价值 意义
RIDI_PREPARSEDDATA
0x20000005
pData 是指向 顶级集合预分析数据缓冲区的 PHIDP_PREPARSED_DATA 指针。
RIDI_DEVICENAME
0x20000007
pData 指向包含 设备接口名称的字符串

如果此设备 使用共享访问模式打开,则可以使用此名称调用 CreateFile 以打开 HID 集合,并使用返回的句柄调用 ReadFile 来读取输入报告,WriteFile 发送输出报告。

有关详细信息,请参阅 打开 HID 集合处理 HID 报表

对于此 uiCommand 中的值是字符计数(而不是字节计数)。

RIDI_DEVICEINFO
0x2000000b
pData 指向 RID_DEVICE_INFO 结构。

[in, out, optional] pData

类型:LPVOID

指向包含由 uiCommand指定的信息的缓冲区的指针。

如果 RIDI_DEVICEINFOuiCommand,请将 RID_DEVICE_INFO 成员设置为 sizeof(RID_DEVICE_INFO),然后再 调用 getRawInputDeviceInfo

[in, out] pcbSize

类型:PUINT

pData中的数据的大小(以字节为单位)。

返回值

类型:UINT

如果成功,此函数将返回一个非负数,指示复制到 pData的字节数。

如果 pData 不足以容纳数据,则函数返回 -1。 如果 pDataNULL,则该函数返回值为零。 在这两种情况下, 设置为 pData 缓冲区所需的最小大小。

调用 GetLastError 以识别任何其他错误。

言论

注意

winuser.h 标头将 GetRawInputDeviceInfo 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非中性编码别名与非非编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-rawinput-l1-1-0(在 Windows 10 版本 10.0.14393 中引入)

另请参阅

概念

RAWINPUTHEADER

RID_DEVICE_INFO

原始输入

参考

WM_INPUT

Top-Level 集合

预先分析的数据

PHIDP_PREPARSED_DATA

打开 HID 集合

处理 HID 报表