VxD
Encyclopedia
VxD is the device driver
Device driver
In 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/386
Windows 2.1x
Windows 2.1x is a family of Microsoft Windows graphical user interface-based operating environments.Windows/286 2.10 and Windows/386 2.10 were released on May 27, 1988, less than a year after the release of Windows 2.0...

, the 386 enhanced mode of Windows 3.x
Windows 3.1x
Windows 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...

, Windows 9x
Windows 9x
Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced since 1995, which were based on the original and later modified Windows 95 kernel...

, and to some extend also by the Novell DOS 7, OpenDOS 7.01, and DR-DOS
DR-DOS
DR-DOS is an MS-DOS-compatible operating system for IBM PC-compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86...

 7.02 (and higher) multitasker. 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.x
Windows 3.1x
Windows 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 extension
Filename extension
A filename extension is a suffix to the name of a computer file applied to indicate the encoding of its contents or usage....

 .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, DOS
DOS
DOS, short for "Disk Operating System", is an acronym 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 95, 98, and Millennium Edition.Related...

 applications would either communicate directly with the various pieces of hardware (responding to interrupts, reading and writing device memory etc.) or go through a DOS device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

. As DOS was not multitasking each application would have exclusive and complete control over the hardware while running. Though Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 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 DOS applications to execute simultaneously. This was done by executing each legacy application within its own virtual machine
Virtual 8086 mode
In the 80386 microprocessor and later, virtual 8086 mode allows the execution of real mode applications that are incapable of running directly in protected mode while the processor is running a protected mode operating system.VM86 mode uses a segmentation scheme identical to that of real mode In...

. 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 port
Computer port (software)
In 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

Although Windows 98 introduced the Windows Driver Model
Windows Driver Model
In 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...

, VxD device drivers can be used under Windows 98 and Windows Me. VxDs are not usable in Windows NT
Windows NT
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...

 or its descendants. Starting with Windows 2000, Windows NT-based operating systems also use the Windows Driver Model
Windows Driver Model
In 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. Using VxD drivers instead of WDM drivers in Windows 9x resulted in advanced ACPI states like hibernation being unavailable.

VxDs should not be confused with the similarly named NTVDM-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-mode DLL's, and must rely on the Win32 API (or another WDM driver) to emulate the desired I/O on behalf of the 16-bit program.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK