Windows 98 IDE and SCSI Hard Drive Controllers
Microsoft Windows 98 managed IDE and SCSI hard drive controllers by
utilizing a 32-bit protected-mode storage architecture that largely
eliminated reliance on legacy MS-DOS real-mode drivers. By routing disk
I/O through its Installable File System (IFS) and the I/O Supervisor
(IOS.VXD), Windows 98 provided direct hardware
communication, lower CPU utilization, and enhanced data transfer speeds
through native drivers, Bus Master DMA for IDE, and standardized
miniport layers for SCSI.
The 32-Bit Storage Architecture
Windows 98 handled disk operations through a layered subsystem headed
by the I/O Supervisor (IOS.VXD). When an application
requested disk access:
- The Installable File System Manager (
IFSMGR.VXD) processed the file system call (FAT16 or FAT32). - The request passed to
IOS.VXD, which queued and monitored block-device operations. IOS.VXDrouted the request to the appropriate Port Driver (.PDR) for the hardware interface.
If an incompatible legacy driver was detected in
CONFIG.SYS or AUTOEXEC.BAT, Windows 98 fell
back to 16-bit real-mode MS-DOS compatibility mode using
INT 13h interrupts. Otherwise, the system ran entirely in
32-bit protected mode, bypassing BIOS-level disk translation during
standard runtime.
Interaction with IDE/ATA Controllers
Windows 98 shipped with built-in support for standard IDE and
Enhanced IDE (EIDE) controllers via the default port driver,
ESDI_506.PDR.
- Hardware Addressing: For standard ISA and
legacy-mode PCI controllers, the driver communicated directly with
traditional hardware resources: Primary IDE channel at I/O port
0x1F0–0x1F7(IRQ 14) and Secondary IDE channel at0x170–0x177(IRQ 15). - Bus Master DMA: Unlike early releases of Windows 95, Windows 98 natively integrated PCI Bus Master IDE support. By utilizing PCI DMA engines, data transferred directly between the drive and system RAM without saturating the CPU. Users could enable DMA through a toggle in Device Manager, allowing drives to operate at Ultra ATA/33 (and later Ultra ATA/66 with updated vendor drivers) rather than slower Programmed I/O (PIO) modes.
- ATAPI Protocol: Through
ESDI_506.PDR, the system handled ATAPI commands, enabling non-hard drive storage devices—such as CD-ROM and tape drives—to share the same physical IDE channels.
Interaction with SCSI Controllers
SCSI implementation in Windows 98 relied on an abstracted, multi-tier driver model designed to support a broad variety of Host Adapter cards (such as those from Adaptec, BusLogic, or Symbios Logic).
- SCSI Miniport Drivers: Windows 98 utilized the
SCSIPORT.PDRwrapper, which allowed the operating system to use Windows NT-compatible SCSI miniport drivers (.SYS). This abstracted low-level SCSI protocol handling from specific vendor hardware logic, letting host adapters execute low-overhead tasks like hardware command queuing and bus disconnect/reconnect. - ASPI Layer: Windows 98 included the Advanced SCSI
Programming Interface (ASPI), consisting of components like
WINASPI.DLL,WNASPI32.DLL, andAPIX.VXD. This provided a standardized API that allowed high-level software (such as optical disc authoring tools and scanning utilities) to send raw SCSI Pass-Through commands directly to target IDs on the bus without requiring custom controller drivers.
Plug and Play and Resource Allocation
Both IDE and SCSI controllers interfaced with the Windows 98 Configuration Manager. For PCI-based controllers, the PCI Bus Enumerator read the card’s configuration space, assigned non-conflicting I/O base addresses and IRQs, and handed control to the storage subsystem. If hardware resource conflicts occurred, the operating system resolved them dynamically or flagged the controller in Device Manager, preventing the controller from locking up system startup.