Можно ли программно идентифицировать физический USB-порт для устройства в Windows?

У меня есть USB-устройство, которое выполняет перечисление с другим интерфейсом, VID, PID и серийным номером по команде, и я хотел бы отслеживать физическое устройство после этого изменения. Моя мысль заключалась в том, чтобы отслеживать его по его концентратору и местоположению порта.

Класс Win32_PnPSignedDriver имеет поле «Местоположение», которое казалось идеальным (например, Port_ # 0001.Hub_ # 0010 ) , но он содержит только местоположение устройства при первой загрузке драйвера. Подключение оборудования к другому порту не приводит к обновлению этого поля.

Однако информация где-то доступна, потому что на вкладке «Подробности» есть поле «Информация о местоположении» при просмотре устройства через диспетчер устройств. Можно ли получить эту информацию с помощью запросов WMI или каким-либо другим способом? Есть ли лучший подход к решению этой проблемы?

РЕДАКТИРОВАТЬ: Я знаю, что это звучит как странный сценарий. Микроконтроллер в этих устройствах содержит ПЗУ, которое обозначается как устройство CDC (то есть последовательный порт) и позволяет программировать. Во время производства было бы полезно отслеживать устройство по мере его изменения между ПЗУ производителя (уникальный VID / PID / серийный номер) и моим пользовательским интерфейсом прошивки (другой VID / PID / серийный номер).

10
задан Cœur 16 November 2019 в 13:09
поделиться