A device driver is code that an operating system uses to control disk devices, display adapters, input devices such as a mouse or trackball, modems, fax machines, printers and other hardware.
In Microsoft Windows 3.1, device most drivers were monolithic, meaning that the driver had to provide all services, user interfaces, Application Programming Interface (API) functions, and hardware-access services for a device to operate using Windows 3.1. Starting with Windows 95, a universal driver/minidriver architecture was implemented. This architecture provides basic device services for certain hardware classes natively, so that independent hardware vendors (IHVs) need to supply device-specific code (drivers) for their particular hardware.
A universal driver includes most of the code necessary for devices in a particular class of devices (such as printers or modems) to communicate with the appropriate operating system components (such as the printer or communications subsystems). A minidriver is the small and simple driver that contains any additional instructions needed by a specific device. In many cases, however, the universal driver for a particular category of devices also includes the code needed to operate devices designed to the most common standard for that category. For example, the Unimodem driver works with all modems supporting AT commands.
A virtualization device driver (VxD) is a 32-bit, protected-mode driver that manages system resources, such as a hardware device or a program, so that more than one program can use a resource at the same time. The term "VxD" refers to a generic virtual device driver, where the "x" represents the type of device driver. For example, a virtual device driver for a display adapter is known as a VDD (virtual display driver), a virtual device driver for a timer device is a VTD, a virtual device driver for a printer device is a VPD, and so on.
While a VxD dynamically supports device drivers, the virtual device keeps track of the status of the device for programs that use the specific device.
Win32 Driver Model
Windows 98 also uses the Win32 Driver Model (WDM) architecture, which provides a common set of input/output (I/O) services that can be understood by Windows 98 and future versions of Microsoft Windows NT. With WDM architecture, developers can write a single device driver for both operating systems.
Human Interface Device Drivers
Windows 98 supports the Human Interface Device (HID) class of drivers. This class is a standard for input devices such as keyboards, mouse devices, joysticks, and game pads.