Получить точку монтирования устройства WPD

Я некоторое время работал с WPD API и, похоже, столкнулся с проблемой за проблемой.

Как только я исправляю одну проблему, появляется другая. Но это жизнь.

Я пытался определить, является ли устройство WPD запоминающим устройством или телефоном или чем-то еще.

Оказывается, что такие устройства, как iPhone, не предназначены для распознавания как телефон, а как универсальное устройство с точки зрения WPD_DEVICE_TYPE,

Но он представлен Windows как устройство хранения.

При подключении внешних жестких дисков, устройств чтения карт памяти SD и других более традиционных устройств хранения они распознаются также API-интерфейсом WPD, но они также получают выделенную точку монтирования в Windows.

Если я подключу внешний жесткий диск, у него будет один объект функциональной категории, а значением этого объекта будет путь к этому диску, скажем, E:,

Ницца. Большой!

Итак, мой вопрос: как я могу как-то прочитать, если на устройстве WPD есть точка монтирования? Конечно, функциональный объект указывает, что он у него есть, но возможно ли, что может быть ориентировочное значение, которое указывает, что точка монтирования доступна?

1 ответ

Проверьте идентификаторы устройств, вот пример их различия:

\\? \ SWD #wpdbusenum#_??_ USBSTOR # диск &ven_usb&prod_flash_disk&rev_1100#aa04012700007404&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}#{6ac27878-a6fa-4155-ba85-f98f491d4f33

против

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

Верхний - это Id, полученный из PortableDeviceManagerClass (первый шаг для создания объекта PortableDevice), нижний я только что прочитал из диспетчера устройств, но его легко получить с помощью одного из следующих решений:

Как получить уникальный идентификатор для устройства в Windows 10 Universal?

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

Другие вопросы по тегам