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:
- WIN386.EXE: This is the core supervisor driver and
operating environment for 386 Enhanced Mode.
WIN386.EXEtakes control of the processor's protected mode operations and manages the translation of extended memory. It uses the underlying pool provided byHIMEM.SYSto establish a virtual memory paging system. - V86MMGR (
*V86MMGR.386): Integrated directly intoWIN386.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 byHIMEM.SYS. - XMS.386: This virtual device driver virtualizes the
XMS services provided by
HIMEM.SYSso 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.