32-Bit File Access Driver in Windows 3.11
This article examines the underlying system drivers responsible for
managing 32-bit File Access (32BFA) in Microsoft Windows for Workgroups
3.11. It identifies the primary drivers involved—specifically
VFAT.386 and IFSHLP.SYS—and explains how they
bypassed real-mode MS-DOS to improve file system performance and
stability in 16-bit Windows environments.
In Microsoft Windows for Workgroups 3.11, the primary system driver
that managed 32-bit file access was
VFAT.386, supported by the real-mode
device driver IFSHLP.SYS.
Prior to Windows for Workgroups 3.11, Windows relied entirely on MS-DOS to manage the File Allocation Table (FAT) file system. Every file read or write required the CPU to switch from 386 Enhanced protected mode back to 16-bit real mode to execute standard MS-DOS interrupts (primarily Interrupt 21h). This context switching created substantial performance bottlenecks.
The Role of VFAT.386
VFAT.386 was a 32-bit virtual device driver (VxD)
running entirely in protected mode. It replaced the MS-DOS FAT file
handling routines, taking direct control of reading, writing, and
parsing the FAT16 file system.
Key features managed by VFAT.386 included:
- Direct File Management: Handled file operations entirely within protected mode without dropping into real mode.
- Integrated Caching (
VCACHE): Included a dynamic 32-bit protected-mode cache that replaced the traditional real-modeSMARTDriveutility. - Reduced Overhead: Prevented unnecessary CPU mode transitions during input/output operations, significantly boosting throughput and system responsiveness.
The Supporting Role of
IFSHLP.SYS
To enable VFAT.386 to take over, Windows required the
Installable File System Helper driver,
IFSHLP.SYS. Loaded in the
CONFIG.SYS configuration file at system startup, this
real-mode stub hooked into the MS-DOS file system interface.
When Windows initialized in 386 Enhanced Mode,
IFSHLP.SYS intercepted standard DOS file calls and routed
them directly to VFAT.386. If 32-bit File Access was
disabled or failed to initialize, IFSHLP.SYS passed
requests back to MS-DOS as normal.
Integration with 32-Bit Disk Access
While VFAT.386 managed the file system layer (32-bit
File Access), full hardware independence required pairing it with 32-bit
Disk Access. Handled by controller-level drivers such as
*WDCTRL (Western Digital-compatible controllers) or
CONTROLP.386, 32-bit Disk Access allowed Windows to
communicate directly with hard drive controllers via Interrupt 13h
hooks.
When both 32-bit File Access (VFAT.386) and 32-bit Disk
Access were active, Windows 3.11 could read from and write to disk
without invoking the underlying MS-DOS or BIOS code, laying the
technical foundation for the fully integrated 32-bit architecture later
seen in Windows 95.