Windows 3.11 Driver File Extensions Explained
Microsoft Windows 3.11 relied on specific file extensions to identify and execute device drivers that controlled hardware components and managed system resources. The primary file extensions assigned to device drivers in Windows 3.11 were .DRV for standard 16-bit drivers and .386 for 32-bit virtual device drivers (VxDs). This article breaks down both file types, their roles in Windows 3.11, and how the system loaded them.
Standard Drivers: The .DRV Extension
The most common file extension for standard device drivers in Windows 3.11 was .DRV. These were 16-bit Dynamic Link Libraries (DLLs) that translated standard Windows API calls from system modules like USER and GDI into commands that hardware devices could execute.
Common examples of .DRV files included:
- VGA.DRV (display driver)
- MOUSE.DRV (pointing device driver)
- KEYBOARD.DRV (keyboard driver)
- COMM.DRV (serial communication driver)
- SYSTEM.DRV (system timer and core hardware control)
These drivers operated in protected mode and were loaded during
system startup via the [boot] section of the
SYSTEM.INI configuration file.
Virtual Device Drivers: The .386 Extension
Windows 3.11 operated in 386 Enhanced Mode, taking advantage of the Intel 80386 processor's protected mode capabilities. For low-level hardware virtualization and multitasking between DOS applications and Windows, the operating system used Virtual Device Drivers (VxDs), which carried the .386 file extension.
Virtual device drivers with the .386 extension ran at
Ring 0, the highest privilege level of the processor. This allowed them
to:
- Directly manage hardware interrupts and I/O ports.
- Virtualize physical hardware so multiple DOS virtual machines could share the same device without conflicts.
- Improve network and 32-bit file access performance, notably through
components like
VCACHE.386andIFSMGR.386in Windows for Workgroups 3.11.
These .386 files were specified and loaded in the
[386Enh] section of SYSTEM.INI. While
Microsoft transitioned to the .VXD extension for virtual
device drivers in Windows 95, Windows 3.11 primarily used
.386 for this purpose.