Windows 3.11 32-Bit File Access on IDE Drives
Microsoft Windows for Workgroups 3.11 significantly improved system performance on IDE hard drives by replacing the legacy 16-bit real-mode MS-DOS and BIOS disk routines with protected-mode drivers. By combining 32-bit disk access via FastDisk technology with the newly introduced 32-bit file access subsystem, Windows 3.11 allowed the operating system to manage both the FAT file system and the underlying IDE hardware directly in 32-bit protected mode, completely eliminating costly CPU mode switches.
The Problem with 16-Bit Real-Mode I/O
In early versions of Windows running in 386 Enhanced Mode, every file
operation required transitioning the CPU from protected mode back to
real mode. When an application requested a file read or write, Windows
passed the request to MS-DOS via interrupt INT 21h. MS-DOS
then processed the FAT file structure and called the system BIOS using
INT 13h. Finally, the BIOS handled the hardware-level
communication with the hard disk controller.
This process forced the processor to switch between 16-bit real mode and 32-bit protected mode repeatedly, generating significant CPU overhead, stalling multitasking, and limiting throughput to the speed of standard BIOS routines.
32-Bit Disk Access and
FastDisk (WDCTRL)
Windows 3.1 initially addressed the lower half of this problem by
introducing 32-Bit Disk Access (32BDA), often referred to as FastDisk.
FastDisk bypassed the system BIOS (INT 13h) through a
protected-mode Virtual Device Driver (VxD).
For IDE hard disk drives, Windows relied on an internal driver named
*wdctrl. Because early IDE drives adhered strictly to the
Western Digital WD1003 controller interface standard,
*wdctrl could communicate directly with the drive
controller's registers using standard I/O ports (typically ports
1F0h through 1F7h). When an
INT 13h call occurred, the driver intercepted it in
protected mode and manipulated the IDE drive hardware directly, avoiding
any drop to real-mode BIOS code.
32-Bit File Access in Windows 3.11
Windows for Workgroups 3.11 completed the transition by bypassing
MS-DOS itself (INT 21h) through the introduction of 32-Bit
File Access (32BFA). This subsystem consisted of three key
components:
IFSHLP.SYS: A real-mode stub driver loaded inCONFIG.SYSthat hooked DOS interrupts during early boot and directed file requests to Windows once protected mode was active.- Installable File System (IFS) Manager: A protected-mode arbiter that received file I/O calls from applications and routed them to the appropriate file system driver.
VFAT.386andVCACHE.386:VFAT.386was a full 32-bit protected-mode implementation of the FAT16 file system, allowing Windows to calculate cluster allocations, navigate directories, and track file tables without MS-DOS. It worked alongsideVCACHE.386, a 32-bit dynamic disk cache that replaced the 16-bit real-modeSMARTDRV.EXE.
The Complete End-to-End 32-Bit Pipeline
When both 32-bit file access and 32-bit disk access were enabled on an IDE drive, the entire storage path remained in 32-bit protected mode:
- An application requested a standard file read or write.
- The IFS Manager intercepted the request and forwarded it directly to
VFAT.386. VFAT.386checked the protected-mode cache (VCACHE.386) for the requested sectors.- If a physical read or write was required,
VFAT.386translated the request into logical sector addresses and passed them straight to the FastDisk driver (*wdctrl). *wdctrlissued commands directly to the IDE controller hardware via I/O ports.
By coupling VFAT.386 with *wdctrl, Windows
3.11 allowed IDE drives to transfer data without ever dropping back into
real-mode DOS or invoking BIOS interrupts. This drastically cut CPU
utilization, kept background tasks running smoothly during heavy disk
operations, and formed the architectural foundation for the storage
system later refined in Windows 95.