sábado, noviembre 13, 2004
Problemas de reconocimiento en Windows
A través del insigne pensador griego Epaminondas Pantulis (al que acabo de caer en la cuenta de que no tenía enlazado a pesar de ser uno de los blogs que leo desde hace más tiempo) llego a un artículo de Raymond Chen sobre por qué Windows no reconoce un dispositivo USB cuando se conecta a un puerto distinto.
Si no lo entendido mal, el problema es el siguiente: Cuando un dispositivo USB se conecta a un puerto por primera vez, Windows lanza el asistente de reconocimiento de hardware y pide que se instale el driver. Con algunos dispositivos, si otro día se conectan a otro puerto, vuelve a pedir el driver. Eso ocurre con los dispositivos que no tienen número de serie, que parece ser opcional en la especificación USB. Como carecen de un identificador único, Windows no puede saber que ya tiene instalado el driver.
Lo que nos seguimos preguntando es: ¿Por qué no se da cuenta de que es un dispositivo del mismo tipo, aunque no sea el mismo, y utiliza los drivers ya instalados para dispositivos de ese tipo? Misterio.
Pero lo mejor está aún por llegar. Resulta que hay fabricantes que sí ponen número de serie a sus dispositivos USB... pero a todos el mismo. Cuando dos dispositivos con el mismo número USB se conectan a la vez en distintos puertos (en el mismo sería un poco difícil), Windows se tiene que reiniciar. Por lo visto es porque Windows elige entre llevar un seguimiento de los dispositivos por puerto o por número de serie. Cuando se conecta el primer dispositivo con número de serie, decide que lo va a identificar por ese número. Pero cuando se conecta el segundo dispositivo con el mismo número, tiene que cambiar a realizar el seguimiento por número de puerto, lo que incluye volver a detectar el primer dispositivo.
O algo así, porque es difícil enterarse con tanto jaleo. Los comentarios de la entrada de Raymond Chen son muy informativos. Por ejemplo explican que hay una variable de entorno, DEVMGR_SHOW_NONPRESENT_DEVICES, que hace que se muestren los dispostivos ocultos incluso cuando no están presentes, cosa que Windows XP no hace por defecto.
Por cierto, al ver el diseño del blog de Raymond Chen creí que era uno en el que había leído una muy interesante anatomía de un bug de Word. Pero no, ese era otro.
Si no lo entendido mal, el problema es el siguiente: Cuando un dispositivo USB se conecta a un puerto por primera vez, Windows lanza el asistente de reconocimiento de hardware y pide que se instale el driver. Con algunos dispositivos, si otro día se conectan a otro puerto, vuelve a pedir el driver. Eso ocurre con los dispositivos que no tienen número de serie, que parece ser opcional en la especificación USB. Como carecen de un identificador único, Windows no puede saber que ya tiene instalado el driver.
Lo que nos seguimos preguntando es: ¿Por qué no se da cuenta de que es un dispositivo del mismo tipo, aunque no sea el mismo, y utiliza los drivers ya instalados para dispositivos de ese tipo? Misterio.
Pero lo mejor está aún por llegar. Resulta que hay fabricantes que sí ponen número de serie a sus dispositivos USB... pero a todos el mismo. Cuando dos dispositivos con el mismo número USB se conectan a la vez en distintos puertos (en el mismo sería un poco difícil), Windows se tiene que reiniciar. Por lo visto es porque Windows elige entre llevar un seguimiento de los dispositivos por puerto o por número de serie. Cuando se conecta el primer dispositivo con número de serie, decide que lo va a identificar por ese número. Pero cuando se conecta el segundo dispositivo con el mismo número, tiene que cambiar a realizar el seguimiento por número de puerto, lo que incluye volver a detectar el primer dispositivo.
O algo así, porque es difícil enterarse con tanto jaleo. Los comentarios de la entrada de Raymond Chen son muy informativos. Por ejemplo explican que hay una variable de entorno, DEVMGR_SHOW_NONPRESENT_DEVICES, que hace que se muestren los dispostivos ocultos incluso cuando no están presentes, cosa que Windows XP no hace por defecto.
Por cierto, al ver el diseño del blog de Raymond Chen creí que era uno en el que había leído una muy interesante anatomía de un bug de Word. Pero no, ese era otro.