Por que meu computador entra em "Novo dispositivo USB" toda vez que conecto um em uma porta diferente?

47

Digamos que eu tenho um mouse. Eu conecto este mouse no slot 1 de 4 em um computador. Ele passa pelo novo dispositivo detectado e tudo isso, o que é bom. Mas se eu voltar mais tarde com o mesmo mouse e conectá-lo no slot 3, ele fará a detecção novamente! Por que é isso?

RCIX
fonte
3
E o que podemos fazer para consertar isso?
Coronel Panic

Respostas:

61

De acordo com Raymond Chen :

Por que o Windows não reconhece meu dispositivo USB como o mesmo dispositivo se eu o conecto a uma porta diferente?

Você deve ter notado que, se você pegar um dispositivo USB e conectá-lo ao computador, o Windows o reconhecerá e o configurará. Então, se você desconectá-lo e conectá-lo a uma porta USB diferente, o Windows fica com amnésia e pensa que é um dispositivo completamente diferente, em vez de usar as configurações aplicadas quando você o conectou pela última vez. Por que é que?

As pessoas do dispositivo USB explicaram que isso acontece quando o dispositivo não possui um número de série USB.

Os números de série são opcionais em dispositivos USB. Se o dispositivo tiver um, o Windows o reconhecerá, independentemente da porta USB em que você o conectar. Mas se ele não tiver um número de série, o Windows tratará cada aparência em uma porta USB diferente como se fosse um novo dispositivo.

(Lembro que um grande fabricante de dispositivos USB não entendeu muito bem como os números de série funcionavam. Eles forneceram todos os números de série de seus dispositivos, isso é ótimo, mas todos obtiveram o mesmo número de série. Coisas interessantes aconteceram se você conectasse dois de seus dispositivos em um computador ao mesmo tempo.)

Mas por que o Windows o trata como um dispositivo diferente se não possui um número de série e aparece em uma porta diferente? Por que não pode simplesmente dizer: "Oh, lá está você, ali em outro porto".

Porque isso cria um comportamento aleatório quando você conecta dois desses dispositivos. Dependendo da ordem em que os dispositivos são enumerados pelo Plug and Play, os dois conjuntos de configurações seriam atribuídos aparentemente aleatoriamente a cada inicialização. Hoje, as configurações correspondem de uma maneira, mas amanhã, quando os dispositivos forem enumerados na outra ordem, as configurações serão trocadas. (Você obtém um comportamento igualmente desconcertante se conectar os dispositivos em ordem diferente.)

Em outras palavras: as coisas são ruins porque (1) as coisas já estavam em péssimas condições - isso não teria sido um problema se o dispositivo tivesse um número de série adequado - e (2) quando você está nesse mau estado, a alternativa é mais ruim . A pilha USB está apenas tentando tirar o melhor de uma situação ruim sem piorar.

jasonh
fonte
17
Uma coisa que não entendo é por que ele precisa reinstalar os drivers de dispositivo novamente. Agora, manterá cópias separadas de drivers para o mesmo dispositivo em cada porta?
Agnel Kurian
11
Vou adivinhar que está apenas associando os drivers existentes à nova designação de porta.
Brian White
11
@BrianWhite passa por todo o processo de download e configuração. Você pode assisti-lo clicando na notificação na barra de tarefas
Cool Blue
11
Oh, eu já assisti muitas vezes. É difícil saber a partir dessa caixa de diálogo, se está realmente buscando novos dados da Internet ou apenas usando arquivos locais (mas texto comum na caixa de diálogo) ou algo assim.
Brian White
Existe alguma maneira de atribuir um número de série a um dispositivo USB? Ou isso é algo que só pode ser feito no nível de fabricação?
TMH
2

O Windows (como você não indica seu SO, presumo que seja isso que você está usando) associa um dispositivo à porta na qual está conectado, portanto, considerou "USB DISCO A na porta X" como diferente de "USB DISK A em porta Y "e vincula os drivers e as entradas do registro de acordo.

Se você usar a opção "Mostrar dispositivos desanexados" ao visualizar o Gerenciador de dispositivos, verá o dispositivo conectado a todas as portas nas quais já foi conectado, mas acinzentado, pois não está atualmente nelas. Quando você conecta o dispositivo a uma dessas portas, o Windows ativa a instância do driver; quando você o conecta a outra porta, é necessário definir uma nova instância do driver para essa porta antes de ativá-la (que é o processo que você vê como usuário). exibido como "adicionando novo dispositivo".

Isso permite que você tenha dispositivos idênticos conectados a portas diferentes, trabalhando ao mesmo tempo. Existem outras maneiras de conseguir isso, com pouca ou nenhuma diferença prática para o usuário final, qual técnica o sistema operacional usa, mas é assim que o Windows escolhe organizá-lo.

David Spillett
fonte
4
Perto, mas não exatamente. O Windows reconhece o mesmo dispositivo em diferentes portas, desde que possa rastrear esse dispositivo exato . Para fazer isso, o dispositivo precisa fornecer um número de série.
jasonh
4
Os discos costumam ter um número de série, na mídia e colocado por formato. Mesmo as coisas realmente baratas de unidades de keyfob estão entre as melhores de todos os dispositivos USB por causa disso. Ratos, teclados, joysticks e outros dispositivos baratos tendem a ser os piores criminosos. Um aborrecimento real é um adaptador serial USB para RS-232 sem um número de série. Ele será atribuído a um novo nome de porta COM toda vez que for acidentalmente movido para uma nova porta. Não tem graça.
RBerteig 25/08/2009