Есть ли способ определить через ОС количество внутренних USB-контроллеров и какой разъем/порт назначен какому контроллеру, если доступно более одного контроллера?
решение1
Количество USB-контроллеров:
powershell -Command "@(gwmi Win32_USBController).count"
Назначенные устройства на контроллер (снова код PowerShell), но без номеров портов:
gwmi Win32_USBControllerDevice | % { $parent = [wmi] $_.Antecedent $child = [wmi] $_.Dependent $parent.caption + '\' + $child.caption } | sort
Это практически вся информация, которую вы можете получить из классов WMI USB.
Если вам нужна более подробная информация, вы можете использовать графический инструмент, напримерПросмотрщик дерева USB-устройствили разработать свой собственный, изменив исходный код C++ изпример программы от Microsoft под названием usbview.