Tecnologia al alcanse de todos

viernes, 8 de enero de 2010

Cómo y porqué se instalan los drivers

Vamos a ver un poquito cómo se "enumeran" los drivers y como el instalador de Windows decide cómo montarlos. A veces es necesario conocer estos mecanismos si queremos forzar la instalación de un determinado driver, en el cual Windows se "pone pesado" e instala otro en su lugar.
Vamos a ver qué sucede desde que instalamos un nuevo hardware (suponemos dispositivos Plug & Play)...
* Nada más instalar nuevo hardware, o bien durante la instalación de Windows, el "enumerador" PNP de Windows le solicita al hardware su identificación. La identificación, no es nada más que una cadena decaracteres que identifica al fabricante y dentro del fabricante el modelo de hardware que vamos a instalar.
Existe un organismo en el que los fabricantes de hardware se registran y de esta manera obtienen un "número" identificativo. Este número es el que utilizan luego sus dispositivos para identificarse.
La "cadena" de caracteres identificativa de un dispositivo PNP, las podemos localizar en el registro en la clave:
HKEY_LOCAL_MACHINE\Enum\PCI
Veamos un ejemplo: en mi máquina, tengo una clave:
VEN1002&DEV5246&SUBSYS_00681002
Esta cadena de caracteres la devuelve como identificativo una tarjeta gráfica ATI ("Vendor": 1002, tarjeta ATI128: DEV5246). El "enumerador" PNP inserta esta identificación como una clave en el registro.
Al existir esta clave, el proceso automático de reconocimiento, invoca al instalador de nuevo hardware. El mecanismo de búsqueda es relativamente sencillo:
* Busca la cadena anterior en todos los archivo .INF que existen en c:\windows\inf y en c:\windows\inf\other
* Si la cadena buscada está más de una vez, utiliza entonces el .INF que tiene la cadena buscada que sea más reciente (es decir ordena por fechas de los .INF).
NOTA: Por desgracia, esto último suele ser el caso que nos sucede bastante a menudo (y el objeto de este artículo), en el cual queremos instalar un determinado driver, y Windows siempre se pone "pesado" y selecciona el anterior.
Igualmente, este suele ser el caso que sufrimos muchos betatesters, debido a que los INF que traen los sistemas operativos beta, tienen una fecha actual, y la fecha de los INF de algún driver que queremos instalar del fabricante, tiene una fecha evidentemente anterior (y puede ser posible que el driver sea mejor, o que queramos instalarlo para probarlo)...
Bien, la manera de "forzar" esta situación, es realizar una instalación normal, y antes de reiniciar el PC (cuando nos lo solicite el programa instalador), buscamos en c:\windows\inf, y más probablemente en c:\windows\inf\other, el archivo .INF "nuevo" que nos acaba de dejar el instalador del producto. Con un editor (por ejemplo "Notepad"), editamos dicho archivo y lo salvamos. Al salvarlo, la "fecha" del archivo ya será"mayor" que la que tiene el propio Windows, y por tanto ahora al reiniciar el PC, Windows utilizará ese archivo al ser la fecha más reciente.

No hay comentarios:

Publicar un comentario

Parceiros Top