How Windows 2000 Handles IEEE 1394 FireWire Storage
Microsoft Windows 2000 provides native Plug and Play architecture for IEEE 1394 (FireWire) mass storage devices, allowing users to connect and disconnect high-speed external hard drives and removable media without rebooting the system. This article details the underlying driver stack, the hardware enumeration process, the implementation of the Serial Bus Protocol 2 (SBP-2), and the safe removal protocols utilized by Windows 2000 to manage these external storage volumes.
The IEEE 1394 Driver Stack
Windows 2000 interfaces with FireWire hardware using a layered driver model composed of the bus architecture, a protocol transport driver, and the standard storage class driver:
- Host Controller Layer (
ohci1394.sys): Manages the physical host controller hardware, typically following the Open Host Controller Interface (OHCI) standard. - Bus Layer (
1394bus.sys): Handles device discovery, bus resets, speed negotiation (up to 400 Mbps under 1394a), and basic packet transmissions. - Transport Layer (
sbp2port.sys): Acts as a bridge between the IEEE 1394 bus and the Windows storage subsystem. It implements Serial Bus Protocol 2 (SBP-2), which wraps SCSI Command Descriptor Blocks (CDBs) inside FireWire data packets. - Storage Class Layer (
disk.sysandscsiport.sys): Interacts withsbp2port.sysas though it were a traditional SCSI host adapter, allowing the operating system to treat the FireWire disk like any conventional internal fixed or removable SCSI drive.
Plug and Play Enumeration
When an IEEE 1394 storage drive is attached to a running Windows 2000 machine, the system follows a structured detection sequence:
- Bus Reset: The physical connection triggers a hardware bus reset, causing the 1394 bus driver to renegotiate node IDs across all connected devices.
- ROM Parsing: The bus driver reads the target device's Configuration ROM to identify its capabilities, vendor ID, and unit directories.
- Device Identification: Upon detecting the SBP-2 unit architecture signature within the ROM, Windows generates a hardware ID and triggers the Plug and Play (PnP) Manager.
- Driver Binding: The PnP Manager automatically loads
sbp2port.sys, which connects toscsiport.sys. The disk class driver (disk.sys) is then bound to the newly created device object.
Storage Mounting and File System Access
Once the drivers are loaded, the operating system sends standard SCSI inquiry and capacity commands through the SBP-2 layer to determine disk geometry, partition layouts, and partition tables (Master Boot Record).
Windows 2000's Logical Disk Manager (LDM) assigns the volume a drive letter dynamically. The appropriate file system driver—typically NTFS or FAT32—mounts the volume, making the storage instantly accessible via Windows Explorer and standard Win32 file APIs without requiring third-party drivers.
Hot-Plugging and Safe Removal
While Windows 2000 inherently supports hot-plugging over the 1394 bus, write caching represents a risk to data integrity. Windows 2000 generally treats external IEEE 1394 storage as fixed media rather than purely removable media, frequently enabling write caching to preserve bus performance.
To prevent data corruption caused by incomplete writes during an
unexpected disconnection, Windows 2000 requires the use of the "Unplug
or Eject Hardware" tool in the system notification area. Selecting the
device notifies scsiport.sys and the file system to flush
write buffers to the disk, terminate active I/O requests, and place the
SBP-2 target into an idle state before the cable is physically
detached.