Windows 95 Hardware Profiles and Laptop Undocking

Windows 95 revolutionized mobile computing by introducing native Plug and Play (PnP) architecture alongside dynamic Hardware Profiles, allowing laptops to transition between docked and undocked states without requiring system reboots. Prior to this, changing physical configurations required shutting down the computer or managing separate MS-DOS configuration files. Windows 95 automated this by integrating the Configuration Manager, advanced bus enumerators, and driver-level event notifications to detect dock state changes, unload absent devices, and switch active hardware profiles on the fly.

Hardware Profiles in the Registry

Windows 95 tracked machine states using Hardware Profiles, which were stored in the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\IDConfigDB and Config subtrees of the Registry. Each profile maintained a unique identifier paired with a specific list of active and disabled device nodes (devnodes). Laptops typically featured at least two profiles: one representing the docked state (with access to external monitors, dedicated network cards, and external storage) and another for the undocked mobile state (relying strictly on integrated displays and power-saving configurations).

Types of Undocking

Windows 95 categorized docking and undocking transitions into three distinct operational modes based on hardware capability:

  • Cold Undocking: The machine was completely powered down before removal. Upon restarting, the BIOS and Windows 95 Plug and Play system queried the machine's state, identified the absence of the docking station, and loaded the corresponding undocked profile.
  • Warm Undocking: The machine entered a suspended or standby state via Advanced Power Management (APM). Once removed from the dock and resumed, the operating system detected configuration shifts and adjusted device states.
  • Hot Undocking: The laptop was removed while fully powered and running. This required specific hardware support from both the laptop vendor and the dock, interfacing directly with Windows 95's Plug and Play subsystem.

The Software-Driven Hot Undocking Process

To prevent system crashes, filesystem corruption, or driver panics during a hot undock, Windows 95 used a software-orchestrated ejection sequence:

  1. Initiation: The user clicked the "Eject PC" option in the Start Menu, or pressed a physical ejection button on the docking station.
  2. Driver Notification: The Plug and Play Configuration Manager intercepted the event and sent a CONFIG_REMOVE or query-removal request down the device tree to every driver associated with the docked hardware profile (such as external SCSI controllers, network interface cards, and secondary displays).
  3. Veto Check and Resource Teardown: Drivers were given the opportunity to flush file buffers, terminate active network connections, or veto the request if a critical, un-abortable operation was underway. Once cleared, the drivers released their assigned I/O ports, IRQs, and memory ranges.
  4. Physical Release: Once all drivers signaled readiness, the operating system signaled the docking hardware to actuate the motorized ejector or release the mechanical solenoid latch holding the laptop in place.
  5. Profile Swapping: The Configuration Manager switched the active profile pointer to the undocked hardware profile. The display driver dynamically downscaled to the laptop’s internal LCD panel resolution, peripheral buses dropped docked devices, and the system returned to standard mobile operation without interrupting the active user session.