-->

domingo, 31 de janeiro de 2010

A importância de gerenciar dispositivos ocultos.

Para facilitar a vida do usuário, quando um dispositivo de hardware é fisicamente removido do computador o Windows não remove as referências que existem a ele no Registro (que podem ser muitas). Assim se o dispositivo "voltar" já está tudo configurado para ele. Isso é realmente desejável e conveniente, mas pode criar problemas. Alguns desses problemas são culpa do jeito que a MS desenhou o Windows enquanto outros são causados porque muitos programadores não executam todos os procedimentos necessários na hora de ler essas informações no Registro. Não é sempre displicência deles pois a coisa é complicada mesmo.

Parte dessa complicação se deve ao fato de que cada vez que você remove uma placa de um slot e coloca em outro, uma nova "instância" da instalação é criada. Se você tiver cinco slots PCI no computador e tiver testado uma placa de rede em cada um deles, haverão haverá cinco referências completas a essa placa de rede no Registro. O mesmo tipo de "problema" ocorre com muitos dispositivos USB, que ganham uma referência no Registro para cada porta USB onde forem inseridos.

Alguns tipos de dispositivo que, na minha experiência, podem criar problemas quando se acumulam:
  • Portas seriais - É o mais propenso a criar problemas pela exaustão dos "nomes" de portas. Até mesmo porque muitos softwares só enxergam as portas de 1 a 4. Eu tinha um texto extenso sobre esse problema em rascunho, mas não sei por onde anda;
  • Adaptadores de rede;
  • Dispositivos USB "Mass Storage" (aparecem sob "unidades de disco") - Sob certas circunstâncias o Windows deixa de reconhecer novos pendrives. Eu suponho que seja pela exaustão das letras de unidade, mas pode ser por outra razão. O fato é que apagar os fantasmas resolve o problema;
  • Webcams e outros dispositivos de captura de imagem. - Faz tempo que eu não vejo isso ocorrer, mas alguns softwares antigos podiam se atrapalhar ao enumerar os dispositivos de captura disponíveis;
O Gerenciador de Dispositivos por default só exibe os dispositivos fisicamente presentes, mas pode mostrar todos os dispositivos que algum dia já passaram pelo computador, permitindo assim que você os remova. Você só precisa saber como ativar isso.

Exemplo real da minha instalação do XP exibindo todas as portas seriais instaladas desde a minha última "limpeza". Os dispositivos "meio apagados" são os dispositivos não-presentes fisicamente.



Por default os dispositivos não-presentes ficam ocultos e é isso que você enxerga:


e daí fica perdido ao ver isso aqui:


Nota: Perceba que na imagem acima a porta 17 aparece em uso, embora na primeira imagem ela não apareça. É que essas imagens mostram apenas as portas seriais comuns. Portas seriais criadas por modems, mesmo os virtuais como os bluetooth, aparecem sob "modems".

11 comentários:

  1. Muito interessante, mas senti falta de um link sobre como realizar essa limpeza, se há algum meio prático de excluir todos os registros de dispositivos não instalados, e se isso pode trazer algum problema.

    ResponderExcluir
  2. Sony,

    "excluir todos os registros de dispositivos não instalados"

    Você quis dizer "não presentes", certo ?

    Pode ser que exista um meio automatizado de excluir todas as referências a dispositivos não-presentes, mas não conheço. Isso seria conveniente porque é um saco apagar os dispositivos um por um, quando são muitos.

    Fazendo pelo Gerenciador não há risco algum. O máximo que vai acontecer é o dispositivo passar de novo pelo processo de detecção e instalação quando estiver fisicamente presente novamente.

    ResponderExcluir
  3. Exato, eu quis dizer "não presentes". :-)

    ResponderExcluir
  4. Anônimo1/2/10 08:37

    Excelente post Jefferson!

    Sobre USB, um detalhe interessante, que ainda preciso testar usando essa sua dica para ver os dispositivos inativos:

    Pelo spec PnP, um dispositivo USB e' identificado por Vendor ID e um Device ID (tem tb a classe de dispositivo, mas deixa p/ la). E, opcionalmente, o dispositivo pode ou nao ter um numero serial proprio.

    Se o dispositivo tiver numero serial (printers, alguns HDs, scanners, etc), o Windows vai re-usar a mesma instancia instalada mesmo que plugado em uma porta diferente. Ja' se nao houver um numero serial (normalmente itens mais baratos, produzidos em massa), nao vai ter como o Windows saber se e' o mesmo dispositivo ou uma nova instancia, entao ele e' re-instalado (usando o driver ja' existente, mas cria uma nova entrada no gerenciador de dispositivos).

    Claudio

    ResponderExcluir
  5. Cláudio,

    Eu já li sobre isso. Pelo que eu me recordo, sempre será criada uma nova instância no Registro. O que muda dependendo do serial é a letra de unidade atribuída ao dispositivo.

    ResponderExcluir
  6. Anônimo2/2/10 17:53

    "....haverão cinco referências completas...."

    ...Haverá cinco referências...

    Acompanho o blog há muito e é raro voce cincar.
    Parabens, J. Adoro o blog.

    ResponderExcluir
  7. Anônimo,

    Eu tenho uma grande dificuldade com essa concordância. Obrigado pela correção!

    ResponderExcluir
  8. Jefferson existe um software que gerencia os dispositivos.

    http://pplware.sapo.pt/software/device-remover-0-9-3597-poderoso-gestor-de-dispositivos/#more-33052

    ResponderExcluir
  9. Bruno,

    O programa parece muito bom. Obrigado pela dica!

    Para quem for testar: Para que os dispositivos ocultos apareçam clique no botão "Display Mode", na faixa horizontal logo abaixo do menu.

    ResponderExcluir
  10. Jefferson,
    excelente post e blog.

    O problema do não reconhecimento de USB "Mass Storage" parece estar no seguinte. O Windows associa uma letra a cada dispositivo. Assim, supondo que temos 2 pen drives associados à mesma letra, se um estiver montado, o outro não funcionará. A solução pode ser trocar manualmente a letra de um deles ou, após a limpeza conforme o seu post, inserir o segundo sem retirar o primeiro, pois assim o windows associará uma letra distinta a cada um.

    ResponderExcluir
  11. Passei para agradecer por essa dica excelente! Estava com esse problema num micro rodando Win10, ao plugar um pendrive ou celular, as vezes levava muito tempo para reconhecer, ou precisava trocar de porta, meio aleatório o problema.

    Removi os mass-storage e outros celulares ocultos e voltou ao normal, ao que parece.

    Um detalhe interessante, no Win10 não precisa setar a variável de ambiente para exibir dispositivos ocultos, a opção está disponível e funciona normalmente sem configurações adicionais (device manager aberto como admin)

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.