it-swarm.dev

¿Por qué mi computadora pasa a "Nuevo dispositivo USB" cada vez que conecto uno a un puerto diferente?

Digamos que tengo un mouse. Conecto este mouse en la ranura 1 de 4 en una computadora. Pasa por el nuevo dispositivo detectado y todo eso, lo cual está bien. Pero si vuelvo más tarde con el mismo mouse y lo conecto a la ranura 3, ¡la detección vuelve a ocurrir! ¿Por qué es esto?

47
RCIX

De acuerdo con Raymond Chen :

¿Por qué Windows no reconoce mi dispositivo USB como el mismo dispositivo si lo conecto a un puerto diferente?

Es posible que haya notado que si toma un dispositivo USB y lo conecta a su computadora, Windows lo reconoce y lo configura. Luego, si lo desconecta y lo vuelve a conectar a un puerto USB diferente, Windows sufre una amnesia y piensa que es un dispositivo completamente diferente en lugar de usar la configuración que se aplicó la última vez que lo conectó. ¿Porqué es eso?

La gente del dispositivo USB explicó que esto sucede cuando el dispositivo carece de un número de serie USB.

Los números de serie son opcionales en dispositivos USB. Si el dispositivo tiene uno, Windows lo reconoce sin importar en qué puerto USB lo conecte. Pero si no tiene un número de serie, Windows trata cada aparición en un puerto USB diferente como si fuera un dispositivo nuevo.

(Recuerdo que uno de los principales fabricantes de dispositivos USB no entendía bien cómo funcionaban los números de serie. Le dieron todos los números de serie de sus dispositivos, eso es genial, pero todos obtuvieron el mismo número de serie. Sucedieron cosas emocionantes si conectabas dos de sus dispositivos en una computadora al mismo tiempo.)

Pero, ¿por qué Windows lo trata como un dispositivo diferente si carece de un número de serie y aparece en un puerto diferente? ¿Por qué no puede simplemente decir: "Ah, ahí estás, en otro puerto".

Porque eso crea un comportamiento aleatorio una vez que conecta dos dispositivos de este tipo. Según el orden en que Plug and Play enumera los dispositivos, los dos conjuntos de configuraciones se asignarían de forma aparentemente aleatoria en cada arranque. Hoy la configuración coincide de una manera, pero mañana cuando los dispositivos se enumeran en el otro orden, la configuración se intercambia. (Obtendrá un comportamiento desconcertante similar si conecta los dispositivos en un orden diferente).

En otras palabras: las cosas apestan porque (1) las cosas ya estaban en mal estado (esto no habría sido un problema si el dispositivo tuviera un número de serie adecuado) y (2) una vez que esté en este mal estado, la alternativa apesta más . La pila USB solo está tratando de sacar lo mejor de una mala situación sin empeorarla.

61
jasonh

Windows (como no dice su sistema operativo, supongo que esto es lo que está usando) asocia un dispositivo con el puerto al que está conectado, por lo que considera que "DISCO USB A en el puerto X" es diferente de "DISCO USB A en puerto Y "y enlaza los controladores y las entradas de registro en consecuencia.

Si utiliza la opción "mostrar dispositivos no conectados" cuando visualiza el Administrador de dispositivos, verá el dispositivo conectado a todos los puertos en los que se ha enchufado pero atenuado ya que no está actualmente en ellos. Cuando conecte el dispositivo a uno de estos puertos, Windows solo activará esa instancia de controlador, cuando lo conecte a otro puerto, deberá definir una nueva instancia de controlador para ese puerto antes de activarlo (que es el proceso que ve como usuario se muestra como "agregar nuevo dispositivo".

Esto le permite tener dispositivos idénticos conectados a diferentes puertos que funcionan al mismo tiempo. Hay otras formas de lograr esto, con poca o ninguna diferencia práctica para el usuario final, qué técnica utiliza el sistema operativo, pero así es como Windows decide organizarlo.

2
David Spillett