Windows 3.11 Third-Party Disk Cache Support

Microsoft Windows 3.11 managed third-party disk caching software—such as Central Point Software's PC-Cache from PC-Tools—through a combination of DOS interrupt notifications, real-mode cooperative APIs, and protected-mode Virtual Device Drivers (VxDs). While Windows 3.11 introduced advanced 32-bit networking and disk access features that frequently conflicted with standard DOS drivers, it maintained compatibility with external caching tools by relying on interrupt signaling to flush cached data, prevent corruption during swap-file operations, and coordinate between real-mode DOS memory and 32-bit protected mode.

Interrupt 2Fh and Cache Signaling

Before Windows 3.11 booted into 386 Enhanced Mode, third-party caches like PC-Cache typically loaded into conventional or upper memory via CONFIG.SYS or AUTOEXEC.BAT. To operate alongside Windows safely, these utilities implemented the standard Microsoft Interrupt 2Fh (Multiplex Interrupt) interface.

When Windows initialized, it broadcasted specific Interrupt 2Fh calls (such as AX=1605h for initialization and AX=1608h for initialization failure or exit). Third-party caches hooked this interrupt to detect when Windows entered protected mode. In response, the cache would:

  • Immediately flush all dirty write buffers to the physical hard disk to prevent file allocation table (FAT) corruption.
  • Disable its own asynchronous or delayed-write ("write-behind") caching algorithms, shifting to safer synchronous (write-through) operations.
  • Defer to Windows' internal memory management to avoid reading stale data from remapped memory blocks.

The Challenge of 32-Bit File and Disk Access

Windows for Workgroups 3.11 introduced 32-Bit File Access (VFAT.386) coupled with its own 32-bit cache, VCACHE.386, which superseded earlier 16-bit real-mode storage layers. It also supported 32-Bit Disk Access (FastDisk), which bypassed the standard ROM BIOS INT 13h routines to communicate directly with hard disk controllers.

Because utilities like PC-Cache operated by intercepting standard BIOS INT 13h and DOS INT 21h calls, they stood directly in the path of Windows' 32-bit drivers:

  1. Validation Checks: When 32-Bit Disk Access or 32-Bit File Access initialized, Windows examined the interrupt vector table. If an unrecognized third-party driver hooked INT 13h without declaring itself compliant, Windows disabled its 32-bit features and automatically reverted to standard real-mode BIOS calls.
  2. Disabling Write-Behind Caching: Windows explicitly required users to disable delayed-write features on utilities like PC-Cache. If write-behind caching was left active, the mismatch between protected-mode operations and the delayed physical writes would trigger severe disk corruption.
  3. Safe Virtual Device Drivers: Companies like Central Point Software updated their utilities to include Windows-aware VxDs (or TSR patches) that exposed an API matching Microsoft's SMARTDrive specification (INT 2Fh, AX=4A10h). When Windows identified this API, it could safely request cache flushes before system idle states, task switching, or system shutdown.

Swap File Protection

Windows 3.11 relied heavily on either temporary or permanent swap files (386SPART.PAR) for virtual memory. Third-party disk caches attempting to cache virtual memory disk writes could destabilize the entire operating system.

To support utilities like PC-Tools, Windows designated swap files as uncacheable. Windows communicated with compatible third-party caches to explicitly exclude the sectors occupied by the permanent swap file from the cache buffer pool. If a cache could not honor this boundary, Windows forced the storage system into real mode or required the cache to be unloaded prior to launching Windows with the WIN command.