Como o Windows categoriza os dispositivos no “Gerenciador de Dispositivos”?

2

Como o Windows determina a categorização de dispositivos no "Gerenciador de Dispositivos"?

Por exemplo, o Gerenciador de dispositivos lista categorias como "Dispositivos de imagens", "Teclados", "Controladores de som, vídeo e jogos" etc. - como o Windows "sabe" colocar um dispositivo em qualquer uma dessas categorias ?

Como o Windows decide qual dispositivo é qual e, em seguida, arquiva-o em uma categoria?

Para referência, eu entendo que o Windows usa IDs de hardware e de fornecedores para "saber" o que é um dispositivo e que a nomeação visível de um dispositivo deriva do arquivo INF inicial. Mas, pelo que entendi, os arquivos INF não definem a categoria ou o tipo de dispositivo, por isso estou me perguntando como o Windows está fazendo a distinção.

    
por Coldblackice 03.07.2013 / 19:09

2 respostas

2

É basicamente responsabilidade do motorista do dispositivo. O Windows representa dispositivos por objetos de dispositivo . Cada objeto de dispositivo tem um tipo de dispositivo , que é armazenado no membro DeviceType de sua estrutura DEVICE_OBJECT. O tipo de dispositivo representa o tipo de hardware subjacente para o driver. Veja a página de fontes abaixo, bem como a documentação relacionada do MSDN sobre os drivers do kernel e do modo de usuário, a arquitetura do Windows Driver Model (WDM), etc.

Origem

    
por 03.07.2013 / 19:35
4

Seu entendimento está incorreto - os arquivos INF definem a categoria para a qual um dispositivo entrará no Gerenciador de dispositivos. O Windows categoriza os dispositivos com base nas entradas de Classe e ClassGuid no arquivo INF usado para instalar o dispositivo.

Por exemplo, vá para o Gerenciador de dispositivos - > Teclados - > Dispositivo de teclado HID (assumido) - > clique com o botão direito - > Propriedades - > Guia Detalhes - > Propriedade suspensa - > Orientação de classe de dispositivo. Você deve ver {4d36e96b-e325-11ce-bfc1-08002be10318} para o GUID da classe de dispositivo. Isso corresponde ao GUID para teclado no link do MSDN "Classes de instalação de dispositivo definidas pelo sistema disponíveis para fornecedores" link

Você pode até criar suas próprias categorias do Gerenciador de dispositivos. "Criando uma nova classe de instalação de dispositivo" link Mas isso geralmente é desaprovado e você deve usar GUIDs de Classe existentes, quando apropriado. Por exemplo, se você escolher usar um GUID de classe diferente para um teclado, (eu acho) o sistema operacional não reconhecerá as teclas que foram pressionadas, mesmo que o sistema operacional reconheça o dispositivo em si (ou seja, ele enumerou, envia dados, mas o os dados não entram nos buffers de teclado do sistema)

    
por 22.07.2013 / 22:11