VxD is the
device driverIn computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
model used in
Microsoft Windows/386Windows 2.1x is a family of Microsoft Windows graphical user interface-based operating environments.Less than a year after the release of Windows 2.0, Windows/286 2.10 and Windows/386 2.10 were released on 27 May 1988...
, the 386 enhanced mode of
Windows 3.xWindows 3.1x is a series of 16-bit operating systems produced by Microsoft for use on personal computers. The series began with Windows 3.1, which was first sold during March 1992 as a successor to Windows 3.0...
, and
Windows 9xWindows 9x is the family of Microsoft Windows operating systems that comprises the hybrid 16/32-bit Windows versions: Windows 95, Windows 98, which were produced in the 1990s, and often also Windows Me, which was produced in 2000...
. VxDs have access to the memory of the kernel and all running processes, as well as raw access to the hardware.
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 form
vxxxd.386 in
Windows 3.xWindows 3.1x is a series of 16-bit operating systems produced by Microsoft for use on personal computers. The series began with Windows 3.1, which was first sold during March 1992 as a successor to Windows 3.0...
. Some examples are: vjoyd.386 (joystick), vmm.386 (memory manager).
VxD is the
device driverIn computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
model used in
Microsoft Windows/386Windows 2.1x is a family of Microsoft Windows graphical user interface-based operating environments.Less than a year after the release of Windows 2.0, Windows/286 2.10 and Windows/386 2.10 were released on 27 May 1988...
, the 386 enhanced mode of
Windows 3.xWindows 3.1x is a series of 16-bit operating systems produced by Microsoft for use on personal computers. The series began with Windows 3.1, which was first sold during March 1992 as a successor to Windows 3.0...
, and
Windows 9xWindows 9x is the family of Microsoft Windows operating systems that comprises the hybrid 16/32-bit Windows versions: Windows 95, Windows 98, which were produced in the 1990s, and often also Windows Me, which was produced in 2000...
. VxDs have access to the memory of the kernel and all running processes, as well as raw access to the hardware.
Design
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 form
vxxxd.386 in
Windows 3.xWindows 3.1x is a series of 16-bit operating systems produced by Microsoft for use on personal computers. The series began with Windows 3.1, which was first sold during March 1992 as a successor to Windows 3.0...
. Some examples are: vjoyd.386 (joystick), vmm.386 (memory manager). VxDs usually have the
filename extensionA filename extension is a suffix to the name of a computer file applied to indicate the encoding convention of its contents.In some operating systems it is optional, while in some others it is a requirement...
.386 under Windows 3.x and
.vxd under Windows 95. VxDs written for Windows 3.x can be used under Windows 95 but not vice versa.
History
Prior to the advent of Windows,
DOSDOS, short for "Disk Operating System", is a shorthand term for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions Windows 95, 98, and ME.Related systems...
applications frequently communicated directly with various pieces of hardware, by responding to interrupts, reading and writing device memory etc. Each application expected to have exclusive and complete control over the hardware. Though
WindowsMicrosoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...
applications don't often communicate directly with hardware, it was the only way to write Windows drivers, and still is in the real and standard modes of Windows 3.x. Despite the fact that Windows switched from running in real mode to protected mode, direct hardware access and interrupt hooking could still be done because when Windows switched to running in protected mode it kept the single privilege level model used in real mode. This lasted all the way through Windows 9x. Windows/386 and onwards allowed multiple
MS-DOSMS-DOS is an operating system developed by Microsoft. It was the most commonly used member of the DOS family of operating systems and was the main operating system for personal computers during the 1980s. It was preceded by M-DOS , designed and copyrighted by Microsoft in 1979...
applications to execute simultaneously. This was done by executing each legacy application within its own virtual machine. To share arbitrary physical resources amongst these virtual machines, Microsoft introduced dynamically-loadable virtual device drivers. These drivers solved issues relating to conflicting usage of physical resources by intercepting calls to the hardware. Instead of a
machine portIn computer programming, port has a wide range of meanings.A software port is a virtual/logical data connection that can be used by programs to exchange data directly, instead of going through a file or other temporary storage location...
representing an actual device, it would represent a "virtual" device, which could be managed by the operating system.
Obsolescence
VxDs are not usable in
Windows NTWindows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was...
or its descendants. Starting with Windows 2000, these operating systems use the
Windows Driver ModelIn computing, the Windows Driver Model — also known at one point as the Win32 Driver Model — is a framework for device drivers that was introduced with Windows 98 and Windows 2000 to replace VxD, which was used on older versions of Windows such as Windows 95 and Windows 3.1, as well...
(WDM), while Windows NT 4 and earlier versions must use drivers written specifically for them.
Windows VistaWindows Vista is a line of operating systems developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
supports both WDM and the newer
Windows Driver FoundationWindows Driver Foundation is a set of Microsoft tools that aid in the creation of device drivers for Windows 2000 and later versions of Windows....
which includes Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF). KMDF is also available for download for Windows XP and Windows 2000, while UMDF is available only for Windows XP.