VxD
# VxD

En la informática relativa a Microsoft, un VxD es un controlador de dispositivo virtual. Se ejecutan bajo los sistemas operativos Windows 3.x, Windows 95, Windows 98 y Windows Me, y tienen acceso a la memoria del kernel y a todos los procesos en ejecución, así como acceso directo al hardware.

Antes de Windows, las aplicaciones DOS se comunicaban a menudo directamente con diversos componentes del hardware respondiendo a las interrupciones, leyendo y escribiendo en la memoria del dispositivo, etc, lo que aún podía hacerse en las DLL de Windows debido al modelo de único nivel de privilegios que perduró durante todos los Windows 9x. Cada aplicación esperaba tener acceso exclusivo y completo sobre el hardware. Windows/386 y posteriores permitían a múltiples aplicaciones MS-DOS ejecutarse simultáneamente. Esto se hacía ejecutando cada aplicación clásica dentro de su propia máquina virtual. Para compartir arbitrarios recursos físicos entre esas máquinas virtuales, Microsoft introdujo controladores de dispositivo virtuales cargables dinámicamente. Estos controladores resolvieron los problemas relativos al uso contradictorio de recursos físicos interceptando las llamadas al hardware. Un puerto de ordenador, en lugar de aparecer como un dispositivo real, aparecería como un dispositivo "virtual", que sería gestionado por el sistema operativo.

El nombre VxD viene del hecho de que la mayor parte de esos controladores de dispositivo virtuales tenían nombres de fichero como "v(algo)d.386" en Windows 3.x. Por ejemplo, vjoyd.386 (joystick), vmm.386 (gestor de memoria) y así. Los VxD tenían generalmente la extensión .386 bajo Windows 3.x y .vxd bajo Windows 95. Los VxD escritos para Windows 3.x podían usarse bajo Windows 95, pero no a la inversa.

Los VxD dejaron de soportarse a partir de Windows NT. Los controladores de dispositivo para Windows 2000 y Windows XP usan el Windows Driver Model (WDM).

