Qual é a diferença entre o Hub de Raiz USb e o Dispositivo Composto USB? [fechadas]

1

Estou desenvolvendo um aplicativo no qual preciso buscar VID e PID de todos os dispositivos USB atuais conectados ao computador.

Mas eu estou recebendo apenas o número VID e PID do meu fone de ouvido que está conectado ao meu computador. e não conseguir para mouse e teclado.

Meu código funciona assim: -

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;
    }

Classe principal

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();
     }

Agora, no caso de Fone de ouvido , estou recebendo a descrição como Dispositivo composto USB . No caso de outros dispositivos conectados ao computador, recebo a descrição como Hub raiz USB

Eu não sei por que estou recebendo apenas VID e PID de apenas Headphone

Por favor, sugira

Obrigado antecipadamente. !!

    
por RL89 18.09.2012 / 13:06

2 respostas

3

Um hub é um dispositivo ao qual outros dispositivos estão conectados. Os hubs de raiz representam os controladores USB na sua placa-mãe.

Um dispositivo composto é um dispositivo que possui várias interfaces; seus fones de ouvido têm duas interfaces, para controles de mixer e para captura de áudio.

Os dispositivos USB normais não estão listados como Win32_USBHub , você também examinou as entradas Dependent . Veja Obtendo as informações dos dispositivos USB usando o WMI para um exemplo.

    
por 18.09.2012 / 13:37
0

Eu não estou cobrindo a parte de codificação desta questão - seu OT para SU. Eu não posso codificar de qualquer maneira

A questão real é que você pode estar olhando para o lugar errado

Primeiro, vá para o gerenciador de dispositivos.

Aqui é meu. Eu escureei os bits menos interessantes e apontei as coisas úteis

Meu mouse para jogos é um dispositivo USB composto - consiste de dois dispositivos virtuais (que, neste caso, estou assumindo que é um fone de ouvido USB. Senão, ele não apareceria). Por isso, aparece em 3 lugares - sob HID, sob teclados e em ratos e outros dispositivos apontadores e como um controlador USB.

Meu teclado aparece APENAS sob HID e Teclados, já que é uma peça chata e não sexy de equipamento da Logitech. NÃO DEVE aparecer em controladores USB.

Em suma? Você pode relook seu código e aprender um pouco sobre como o Windows classifica o hardware.

    
por 18.09.2012 / 13:38

Tags