Was ist der Unterschied zwischen USb Root Hub und USB Composite Device? [geschlossen]

1

Ich entwickle eine Anwendung, die ich abrufen muss VID und PID aller an den Computer angeschlossenen aktuellen USB-Geräte.

Ich erhalte jedoch nur die VID- und PID-Nummer meines Kopfhörers, der an meinen Computer angeschlossen ist. und nicht für Maus und Tastatur bekommen.

Mein Code funktioniert so: -

static List<USBDeviceInfo> GetUSBDevices()
    {
        List<USBDeviceInfo> devices = new List<USBDeviceInfo>();

        ManagementObjectCollection collection;
        using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub"))
            collection = searcher.Get();

        foreach (var device in collection)
        {
            devices.Add(new USBDeviceInfo(
            (string)device.GetPropertyValue("DeviceID"),
            (string)device.GetPropertyValue("PNPDeviceID"),
            (string)device.GetPropertyValue("Description")
            ));
        }

        collection.Dispose();
        return devices;
    }

Hauptklasse

static void Main(string[] args)
    {
       var usbDevices = GetUSBDevices();
       foreach (var usbDevice in usbDevices)
       {
        Console.WriteLine("Device ID: {0}, PNP Device ID: {1}, Description: {2}",
         usbDevice.DeviceID, usbDevice.PnpDeviceID, usbDevice.Description);
       }
      Console.Read();
     }

Nun im Falle von Kopfhörer Ich erhalte die Beschreibung als USB-Verbundgerät Im Falle anderer an den Computer angeschlossener Geräte erhalte ich die Beschreibung als Usb Verteiler

Ich weiß nicht, warum ich nur VID und PID von nur Kopfhörer bekomme

Bitte vorschlagen

Danke im Voraus.!!

RL89
quelle
Sie müssen Ihren Code nicht anzeigen (diese Site ist keine Programmiersite), da er für Ihre Frage per se relevant ist.
Dave

Antworten:

3

EIN Nabe ist ein Gerät, mit dem andere Geräte verbunden sind. Root-Hubs repräsentieren die USB-Controller auf Ihrem Motherboard.

EIN Composite-Gerät ist ein Gerät mit mehreren Schnittstellen; Ihr Kopfhörer verfügt über zwei Schnittstellen, für die Steuerung des Mischpults und für die Audioaufnahme.

Normale USB-Geräte werden nicht als aufgeführt Win32_USBHubSie haben auch in die Dependent Einträge. Sehen Abrufen der USB-Geräteinformationen über WMI zum Beispiel.

CL.
quelle
Die Verbindung ist unterbrochen
miniBill
0

Ich werde den Codierungsteil dieser Frage nicht behandeln - sein OT für SU. Ich kann sowieso nicht codieren

Das eigentliche Problem ist, dass Sie möglicherweise am falschen Ort suchen

Schauen Sie sich zunächst den Geräte-Manager an.

Hier ist meins. Ich habe die weniger interessanten Stellen abgedunkelt und auf das Nützliche hingewiesen enter image description here

Meine Gaming-Maus ist ein USB-Verbundgerät - sie besteht aus zwei virtuellen Geräten (in diesem Fall handelt es sich vermutlich um ein USB-Headset. Andernfalls würde es überhaupt nicht angezeigt werden). Daher erscheint es an 3 Stellen - unter VERSTECKT, unter Tastaturen und unter Mäuse und andere Zeigegeräte und als USB-Controller.

Meine Tastatur wird NUR unter HID und Tastaturen angezeigt, da es sich um eine langweilige, nicht sexy Logitech-Ausrüstung handelt. Es sollte NICHT unter USB-Controllern auftauchen.

Zusamenfassend? Möglicherweise überprüfen Sie Ihren Code erneut und erfahren, wie Windows die Hardware klassifiziert.

Journeyman Geek
quelle