Каковы хорошие способы обнаружения присутствия определенного устройства, подключенного к компьютеру, в приложении C #? Программно, конечно. Мне нужно поддерживать Windows XP и 7.
Фон
Мне дали огромное приложение на C #, которое использует подключенное устройство. Устройства изготовлены на заказ и не предназначены для использования без программного обеспечения. Когда приложение C # запускается, оно ищет такие подключенные устройства и связывается с ними, когда это необходимо. Может быть более одного подключенного устройства. Я не смотрел в исходный код, который ищет устройства. Устройства подключаются к ПК с помощью USB или последовательного кабеля. Они отображаются как COM-порт в диспетчере устройств. Иногда между ПК и устройством может быть концентратор USB или преобразователь последовательного интерфейса в USB.
Когда устройство подключено к определенному концентратору USB или используется определенный преобразователь последовательного интерфейса в USB, иногда программное обеспечение не может правильно определить устройство. Иногда это варьируется от ПК к ПК. Мы не уверены, вызывает ли это какой-то драйвер.
Мне сказали изучить алгоритм поиска устройства и, если возможно, найти лучшее решение и заменить текущую реализацию. Раньше я не выполнял подобного рода задач, и мне нужно узнать, как Windows управляет устройствами под капотом.
Как я могу искать определенные подключенные устройства в C #? Каковы некоторые хорошие практики и что я должен знать или избегать?