VxD je model ovladače zařízení používaný systémy Microsoft Windows/386 , Windows 3.x Enhanced Mode , Windows 9x a do určité míry Novell DOS 7 , OpenDOS 7.01 a DR-DOS 7.02 . [1] VxD má přístup k paměti z jádra, ke všem běžícím procesům a přímý přístup k hardwaru.
Název "VxD" je zkratkou pro "virtuální ovladač xxx" ("virtuální ovladač xxx"), kde "xxx" je specifická třída hardwarového zařízení. [1] Vyplývá to ze skutečnosti, že mnoho ovladačů ve Windows 3.x mělo názvy souborů ve tvaru vxxxd.386. Například: vjoyd.386 (joystick), vmm.386 (správce paměti). VxD měl obvykle příponu souboru .386 pod Windows 3.xa .vxdpod Windows 9x. Ovladače VxD napsané pro Windows 3.x lze použít pod Windows 9x, ale ne naopak.
Před příchodem Windows přistupovaly aplikace DOS buď přímo k různým částem hardwaru (reagovaly na požadavky, přerušení, čtení a zápis do paměti zařízení atd.), nebo prostřednictvím ovladače zařízení DOS . Protože DOS nebyl multitaskingový systém, každá aplikace měla během svého běhu výhradní a úplnou kontrolu nad hardwarem. A přestože aplikace pro Windows často nemluvily přímo s hardwarem, pro ovladače Windows to byl jediný způsob; je stále v reálném a standardním režimu Windows 3.x.
Od Windows/386 dále bylo povoleno spouštění více aplikací pro DOS současně, z nichž každá běžela na svém vlastním virtuálním stroji . Pro sdílení fyzických prostředků mezi virtuálními stroji představil Microsoft ovladače virtuálních zařízení. Tyto ovladače vyřešily konflikty vznikající při používání fyzických prostředků zachycováním volání na hardware. Například místo hardwarového portu byl skutečným zařízením, ovladač byl "virtuální" zařízení, které lze ovládat operačním systémem.
Ačkoli Windows 98 zavedl model Windows Driver Model (WDM), ovladače VxD bylo možné použít ve Windows 98 a Windows Me. Nemohly však být použity na Windows NT a jeho potomcích. Počínaje Windows 2000 používají systémy založené na Windows NT také model ovladače Windows, zatímco Windows NT 4 a starší musely používat ovladače navržené speciálně pro ně. Použití ovladačů VxD místo WDM ve Windows9x znemožnilo použití některých funkcí ACPI , jako je režim spánku .
VxD by se nemělo zaměňovat s podobně pojmenovanými NTVDM -'VDDs' (Virtual Device Drivers), které poskytují přímou I/O emulaci pod Windows NT v DOS boxu. NTVDM VDD běží jako běžná 32bitová knihovna DLL v uživatelském režimu a musí záviset na rozhraní Win32 API (nebo jiném ovladači WDM), aby emuloval požadovaný I/O jménem 16bitového programu.