Wyszukiwanie informacji o wszystkich urządzeniach szeregowych podłączonych przez USB w C #

Mój projekt wymaga wykrycia określonego urządzenia, gdy jest podłączone do USB. Jedynym sposobem na zidentyfikowanie tego urządzenia jest jego opis / nazwa urządzenia, a nie port com. To, co znalazłem, aby wykonać właściwą funkcję, to użycie kwerendy WMI i sprawdzenie właściwości nazwy:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * from WIN32_SerialPort");
            foreach (ManagementObject port in searcher.Get())
            {
                deviceName = (string)foundPort.GetPropertyValue("Name"); 
                ...

Początkowo przetestowałem to przez podłączenie telefonu, a zapytanie zwróciło telefon znaleziony na COM3 zgodnie z oczekiwaniami. Następnie podłączyłem inne urządzenie (konwerter USB na szeregowy, który bardziej przypomina urządzenie, którego potrzebuję dla tego projektu), a zapytanie po prostu go nie znalazło. Znajduje tylko telefon. To urządzenie wyświetla się jednak na porcie COM4 w Menedżerze urządzeń. Na przekór mnie jeszcze bardziej, klasa SerialPort znajduje oba urządzenia, ale nie dostarcza informacji potrzebnych do identyfikacji urządzenia:

    string[] tempPorts = SerialPort.GetPortNames();

Przeczytałem wiele wątków na SO i gdzie indziej i nie mogę znaleźć zadowalającego rozwiązania. Czy ktoś mógłby wyjaśnić, dlaczego zapytanie WIN32_SerialPort nie znajduje mojego innego urządzenia? Czy z jakiegoś powodu nie jest uważany za port szeregowy win32? I czy ktoś mógłby mi wskazać kierunek rozwiązania tego problemu?

questionAnswers(3)

yourAnswerToTheQuestion