跳转到主要内容
以 UTF-8 字符串形式获取输入设备的即插即用 (PnP) 设备路径。

语法

参数

bufferByteCount   _In_
类型:uint32_t
buffer 所指向的缓冲区的大小(以字节为单位)。传递 0 可查询所需的大小。 buffer   _Out_writes_bytes_opt_(bufferByteCount)
类型:char*
接收以 null 结尾的 UTF-8 PnP 路径的缓冲区。传递 nullptr 可查询所需的大小。

返回值

类型:uint32_t 容纳 PnP 路径所需的缓冲区大小(以字节为单位),包括 null 终止符。

备注

仅当 buffer 不为 nullptr 且 bufferByteCount 大于或等于所需大小时,该方法才会将 PnP 路径写入 buffer。否则,缓冲区不会被修改。若要检索该路径,请先使用值为 0 的 bufferByteCount 和值为 nullptr 的 buffer 调用一次该方法以获取所需大小,分配该大小的缓冲区,然后再次调用该方法。 如果设备没有 PnP 路径,则所需大小为 1,并且该方法会写入一个空字符串。 可以使用 PnP 路径通过其他 API 引用底层设备。由于该路径采用 UTF-8 编码,因此在将其传递给需要宽字符字符串的 Windows API 之前,请先将其转换为 UTF-16(例如,通过将 MultiByteToWideChar 与 CP_UTF8 一起使用)。 PnP 路径在设备对象的生存期内不会更改。 以下示例检索设备的 PnP 路径。
在 GameInput v3 及更早版本中,此信息可从 IGameInputDevice::GetDeviceInfo 返回的 GameInputDeviceInfo 结构的 pnpPath 成员中获取。

要求

头文件: GameInput.h 库: gameinput.lib 支持的平台: Windows、XBOX One 系列主机和 XBOX Series 主机

另请参阅

GameInput 概述
IGameInputDevice
IGameInputDevice::GetDisplayName
IGameInputDevice::GetContainerId

版本历史

最后修改于 2026年11月6日