2

我已经使用 WPD API 有一段时间了,我似乎在一个又一个问题中遇到了问题。

一旦我解决了一个问题,就会出现其他问题。但是,嘿,这就是生活。

我一直在尝试确定 WPD 设备是存储设备还是电话或其他设备。

事实证明,iPhone 等设备并未被设置为手机,而是在WPD_DEVICE_TYPE.

但是,它作为存储设备呈现给 Windows。

当连接外部硬盘驱动器、SD 存储卡读卡器和其他更传统的存储设备时,它们也能被 WPD API 识别,但在 Windows 中也会获得一个专用的挂载点。

如果我连接一个外部硬盘驱动器,它将有一个功能类别对象,该对象的值将是该驱动器的路径,例如E:

好的。伟大的!

所以我的问题是:如果 WPD 设备有挂载点,我该如何读取?当然,功能对象表明它有一个,但是是否有可能有一个指示值表明安装点可用?

4

1 回答 1

0

检查设备 ID,这是一个示例,它们有何不同:

\\?\swd#wpdbusenum#_??_usbstor#disk&ven_usb&prod_flash_disk&rev_1100#aa04012700007404&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}#{6ac27878-a6fa-4155-ba835-fd8

对比

USBSTOR\DISK&VEN_USB&PROD_FLASH_DISK&REV_1100\AA04012700007404&0

上一个是从 PortableDeviceManagerClass 收集的 Id(创建 PortableDevice 对象的第一步),下一个是我刚刚从设备管理器中读取的,但它应该可以通过以下解决方案之一轻松检索:

如何在 Windows 10 Universal 中获取设备的唯一标识符?

https://sourceforge.net/projects/sharpdevelop/files/SharpUSBLib/

于 2017-04-06T17:57:20.327 回答