Suchen von Informationen zu allen über USB angeschlossenen seriellen Geräten in C #

Mein Projekt erfordert die Erkennung eines bestimmten Geräts, wenn es an USB angeschlossen ist. Ich kann dieses Gerät nur anhand seiner Beschreibung / seines Gerätenamens identifizieren, nicht anhand des COM-Anschlusses. Was ich gefunden habe, um die richtige Funktion auszuführen, ist die Verwendung einer WMI-Abfrage und die Überprüfung der Namenseigenschaft:

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

Ich habe dies zunächst getestet, indem ich mein Telefon angeschlossen habe. Die Abfrage hat das auf COM3 gefundene Telefon wie erwartet zurückgegeben. Dann habe ich ein anderes Gerät angeschlossen (einen USB-zu-Seriell-Konverter, der dem Gerät, für das ich dieses Projekt benötige, ähnlicher ist), und die Abfrage hat es einfach nicht gefunden. Es findet nur das Telefon. Dieses Gerät wird jedoch an Port COM4 im Geräte-Manager angezeigt. Um mich noch mehr zu ärgern, die SerialPort-Klasse findet beide Geräte, stellt jedoch nicht die Informationen bereit, die ich zur Identifizierung des Geräts benötige:

    string[] tempPorts = SerialPort.GetPortNames();

Ich habe zahlreiche Threads zu SO und anderen Themen gelesen und kann keine zufriedenstellende Lösung finden. Könnte jemand bitte klären, warum die WIN32_SerialPort-Abfrage mein anderes Gerät nicht findet? Wird es aus irgendeinem Grund nicht als serielle Win32-Schnittstelle angesehen? Und, könnte mich bitte jemand auf eine Lösung für dieses Problem hinweisen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage