检索WPD设备的装载点



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

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

我一直在尝试确定WPD设备是存储设备还是手机或其他什么。

事实证明,像iPhone这样的设备并没有被设置为被识别为手机,而是被设置为WPD_DEVICE_TYPE的通用设备。

但是,它是作为存储设备提供给Windows的。

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

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

不错。太棒了

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

检查设备ID,下面是它们的区别示例:

\\?\swd#wpdbusenum#__usbstor#disk&ven_usb&prod_flash_disk;rev_1100#aa04012700007404&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}#{6ac278-a6fa-4155-ba85-f98f491d4f33

与。

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新