Windows 3.11 Extended Memory and HIMEM.SYS

Microsoft Windows 3.11 relies on a combination of MS-DOS device drivers and Windows-specific 386 Enhanced Mode drivers to manage system RAM beyond the standard 640 KB conventional limit. This article explains how extended memory is initialized via HIMEM.SYS, and identifies WIN386.EXE and its associated Virtual 8086 Mode Memory Manager (*V86MMGR / XMS.386) as the internal Windows system drivers that facilitate extended memory access.

The Role of HIMEM.SYS

Before Windows 3.11 starts, extended memory access must be established at the MS-DOS level. The HIMEM.SYS driver, loaded via CONFIG.SYS, serves as the foundational Extended Memory Specification (XMS) driver. It manages access to RAM above the 1 MB boundary and controls the High Memory Area (HMA), the first 64 KB of extended memory. Windows 3.11 requires HIMEM.SYS to run in 386 Enhanced Mode; without it, the operating environment cannot access physical memory above 1 MB.

Windows 3.11 Drivers for Extended Memory

Once MS-DOS loads HIMEM.SYS, Windows 3.11 initializes its own memory management drivers when launching WIN.COM:

  1. WIN386.EXE: This is the core supervisor driver and operating environment for 386 Enhanced Mode. WIN386.EXE takes control of the processor's protected mode operations and manages the translation of extended memory. It uses the underlying pool provided by HIMEM.SYS to establish a virtual memory paging system.
  2. V86MMGR (*V86MMGR.386): Integrated directly into WIN386.EXE, the Virtual 8086 Mode Memory Manager is the internal virtual device driver (VxD) responsible for coordinating memory allocation between Windows and virtual DOS machines. It communicates with the XMS interface initialized by HIMEM.SYS.
  3. XMS.386: This virtual device driver virtualizes the XMS services provided by HIMEM.SYS so that individual DOS prompts running inside Windows can independently allocate and access extended memory.

How Extended Memory Access Operates

During the boot process, HIMEM.SYS gains exclusive initial control over physical extended memory. When Windows 3.11 loads, WIN386.EXE queries HIMEM.SYS through the XMS API, allocates all remaining extended memory, and transitions the CPU into protected mode. From that point forward, the internal Windows memory manager handles virtual memory, paging to disk via PAGESWAP.386, and extended memory distribution across the entire Windows environment.