Windows 95 Docked and Undocked Hardware Profiles

Windows 95 revolutionized mobile computing by introducing native Plug and Play (PnP) support and dynamic Hardware Profiles, allowing laptops to transition between docked and undocked states without requiring separate operating system installations or tedious manual reconfiguration. This article explains how Windows 95 utilized the system Registry, Plug and Play BIOS specifications, and dynamic driver loading to manage changing device configurations, monitor states, and resource allocations when laptops moved in and out of docking stations.

The Role of Hardware Profiles

Prior to Windows 95, changing a computer's hardware configuration typically required manual driver adjustments or multiple boot configurations via CONFIG.SYS and AUTOEXEC.BAT. Windows 95 solved this by introducing Hardware Profiles, stored in the Registry under the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles key.

Each profile contained a specific snapshot of the system's hardware configuration. When Windows 95 detected that a machine was a portable computer with docking capabilities, it automatically created two default profiles:

  • Docked Profile: Configured to enable drivers for desktop-centric peripherals such as external CRT monitors, full-sized network interface cards (NICs), external storage drives, and dedicated audio equipment.
  • Undocked Profile: Configured to disable external hardware drivers to conserve memory and battery life, reverting to the integrated display panel, trackpad, and internal power management routines.

Plug and Play Detection and the Configuration Manager

The core subsystem handling these transitions was the Windows 95 Configuration Manager working alongside a Plug and Play (PnP) BIOS. When a laptop docked, the PnP BIOS recognized the physical connection and alerted the operating system via a hardware interrupt.

The Configuration Manager then queried the dock's system bus to identify the attached devices. It cross-referenced the hardware IDs with the Registry, determined the correct Hardware Profile to activate, and dynamically allocated hardware resources—including Interrupt Request (IRQ) lines, I/O ports, and Direct Memory Access (DMA) channels—to eliminate resource conflicts.

Types of Docking Supported

Windows 95 supported three distinct types of docking interactions:

  1. Cold Docking: The machine was completely powered down before insertion into or removal from the dock. Upon boot, the PnP BIOS reported the current state, and Windows 95 loaded the corresponding profile without user intervention.
  2. Warm Docking: The laptop was placed into a suspended or low-power state before docking or undocking. Upon resume, the operating system detected the state change, unloaded or loaded the necessary drivers, and refreshed the profile.
  3. Hot Docking: The laptop was docked or undocked while fully powered and running. Windows 95 dynamically loaded device drivers in real-time as the hardware pins made contact.

The "Eject PC" Workflow

To prevent data corruption during hot and warm undocking, Windows 95 introduced an "Eject PC" command directly into the Start menu. When a user initiated this command, the operating system performed a sequence of safety checks:

  • It notified open applications that the system was about to undock, allowing them to release handles on external devices.
  • It unmounted file systems running on external drives housed in the docking station.
  • It safely unloaded device drivers for dock-specific hardware.
  • It released any software-controlled motorized locking mechanisms on the docking station, signaling to the user that it was safe to physically disconnect the laptop.

If an application refused to release a file or an active network connection on a dock-attached NIC could not be cleanly closed, Windows 95 presented an error dialog warning the user to close the conflicting programs before undocking.