This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "VxD" – news ·newspapers ·books ·scholar ·JSTOR(September 2014) (Learn how and when to remove this message) |
VxD is thedevice driver model used inMicrosoft Windows/386 2.x, the 386 enhanced mode ofWindows 3.x,Windows 9x, and to some extent also by theNovell DOS 7,OpenDOS 7.01, andDR-DOS 7.02 (and higher) multitasker (TASKMGR
).[1] VxDs have access to thememory of thekernel and all runningprocesses, as well as raw access to the hardware. Starting withWindows 98,Windows Driver Model was the recommended driver model to write drivers for, with the VxD driver model still being supported forbackward compatibility, untilWindows Me.
The name "VxD" is an abbreviation for "virtual xxx driver", where "xxx" is some class of hardware device. It derives from the fact that most drivers had filenames of the formvxxxd.386
inWindows 3.x. Some examples are vjoyd.386 (joystick) and vmm.386 (memory manager). VxDs under Windows 3.x usually have thefilename extension.386
, while those under Windows 9x have.vxd
. VxDs written for Windows 3.x can be used under Windows 9x but not vice versa.
Prior to the advent of Windows,DOS applications would either communicate directly with the various pieces of hardware (responding tointerrupts, reading and writingdevice memory etc.) or go through a DOSdevice driver. As DOS was not multitasking, each application would have exclusive and complete control over the hardware while running. ThoughWindows applications don't often communicate directly with hardware, it was the only way for Windows drivers; and still is in thereal and standard modes of Windows 3.x.
Windows/386 and onward allowed multiple DOS applications to execute concurrently by executing each within its ownvirtual machine. To share physical resources among these virtual machines, Microsoft introduced virtual device drivers. These drivers solved issues relating to conflicting usage of physical resources by intercepting calls to the hardware. Instead of amachine port representing an actual device, it would represent a "virtual" device, which could be managed by the operating system.
UnderWindows 9x, the VxD is aLinear Executable format file.
Although Windows 98 introduced theWindows Driver Model (WDM), VxD device drivers can be used under Windows 98 and Windows Me. Using VxD drivers instead of WDM drivers in Windows 9x may result in advancedACPI states likehibernation being unavailable.
VxDs are not usable inWindows NT or its descendants. Windows NT-based operating systems from3.1 to4.0 must use drivers written specifically for them. These drivers are otherwise known as theWindows NT Driver Model. Starting withWindows 2000, Windows NT-based operating systems have adopted the Windows Driver Model from Windows 98.
VxDs should not be confused with the similarly namedNTVDM-specific 'VDDs' (Virtual Device Drivers), which provide a method of emulating direct I/O under a Windows NT "DOS Box". NTVDM VDDs run as regular,32-bit,user-modeDLLs, and must rely on theWin32 API (or another WDM driver) to emulate the desired I/O on behalf of the16-bit program.