Overview

This document describes the Installable File System (IFS) interface for the DOS/Win32™ product. This interface is being defined to support multiple file systems on DOS/Win32. All file systems for this product will be supported through this interface. This includes FAT, Network Redirectors, CD-ROM, and HPFS or NTFS. The only file systems that are not expected to use this interface are existing Int 21h hooking file systems such as network redirectors. However we expect all major network vendors to provide a network IFS for this product.

The OS/2 and NT IFS has been evaluated as an option for this interface. Due to the difference in the architectures of these systems, the OS/2 and NT IFS interface is not easily adapted to the DOS architechture. The resulting size and performance of such an adaptation would be unacceptable.

The DOS/Win32 product will support the VMM environment currently available in Windows, which supports the Virtual Device Driver (VxD) model. This allows the File Systems or File System Drivers (FSDs) to be implemented as 32-bit flat model VxD modules. They will run in protected mode in high memory and will not consume any real mode memory. A protected mode block device driver interface will be defined to support these FSDs. This will allow the protected mode FSDs to remain in protected mode through out the entire I/O operation. The system will only mode switch when transferring control from the V86 mode DOS app to the protected mode file system. For protected mode windows apps there will be no mode switching, unless compatibility requires I/O operations to go through the V86 mode Int 21h chain.

The IFS interface defines a set of functions needed to support file I/O operations originating from the Win32 API calls and from the DOS INT 21h calls. A single VxD module is used to manage the relevant calls from the Win32 API layer and the INT 21h interrupts. This VxD converts the API request into the IFS interface functions and routes it to the appropriate FSDs.

All of the components described here run in protect mode. This will allow DOS users to connect to and use heterogeneous file servers without using (hardly) any conventional memory.

The reader should be familiar with the section on file I/O APIs in the Microsoft Win32 Programmer's Reference before reviewing this document.