Windows 3.11 Virtual Machine Drivers: SYSTEM.INI
In Microsoft Windows 3.11, the primary configuration file responsible
for specifying driver loadings for virtual machines is
SYSTEM.INI. Specifically, the [386Enh] section
of this initialization file dictates how Windows in 386 Enhanced Mode
virtualizes hardware components and loads the necessary 32-bit Virtual
Device Drivers (VxDs). This article details the role of
SYSTEM.INI, how the [386Enh] section operates,
and how virtual machine drivers were defined in the Windows 3.11
environment.
The Role of SYSTEM.INI
In early versions of Windows, hardware initialization and core system
settings were managed using plain-text .INI files rather
than a unified registry. While WIN.INI handled user-level
application preferences and desktop environments,
SYSTEM.INI was directly tied to the operating system's
interaction with the underlying hardware, memory management, and
system-level drivers.
The [386Enh] Section
Windows 3.11 ran exclusively in 386 Enhanced Mode, abandoning the Standard Mode supported in earlier releases. In this mode, the operating system used the protected-mode capabilities of the Intel 80386 processor (and newer) to create and supervise virtual machines.
To enable multiple MS-DOS environments and Windows itself to share
hardware safely, SYSTEM.INI utilized the
[386Enh] section. This section explicitly declared the
Virtual Device Drivers (VxDs) required to manage access to physical
devices like display adapters, serial ports, network interfaces, and
disk controllers.
Driver Loading Syntax
Drivers designated for virtual machine management were loaded using
the device= directive within the [386Enh]
block. Windows supported two methods for declaring these drivers:
- Internal Drivers: Many essential VxDs were packaged
directly inside the monolithic
WIN386.EXEfile. These drivers were referenced using an asterisk followed by the driver name.[386Enh] device=*vpicd device=*vdmad device=*vshare - External Drivers: Third-party hardware or updated
subsystems loaded separate files, typically with a
.386extension, stored in theSYSTEMdirectory.[386Enh] device=vnetbios.386 device=vip.386
Function of Virtual Device Drivers (VxDs)
When an MS-DOS prompt or application was launched in Windows 3.11,
the system spawned a new Virtual 8086 Mode machine. The drivers declared
under [386Enh] intercepted hardware calls from these
virtual machines. Instead of allowing a DOS application to manipulate
hardware ports directly—which would crash concurrent tasks—the VxD
simulated the expected hardware response, ensuring stable multitasking
across all running virtual machines.