Example Boot Sequence

This section describes the boot process for an ideal configuration: a computer with a new BIOS and new Plug and Play cards, but no non-Plug and Play hardware or real-mode device drivers.

Phase 0: BIOS Initialization

The BIOS configures all motherboard devices. Next it executes the ISA Plug and Play isolation algorithm and assigns configurations to all devices required for booting. It then checks the expansion card ROMs during the power-on self test and boot loads the operating system (phase 1).

Phase 1: Real Mode MS-DOS Driver Loading

CONFIG.SYS and AUTOEXEC.BAT are processed in the standard manner.

Phase 2: Real Mode VxD Loader

The system loads VxDs specified in SYSTEM.INI. The real mode loader loads the PnPBIOS enumerator if appropriate, as determined by detection at Windows 95 install time. If there is no PnPBIOS in the machine, the appropriate bus drivers are loaded based on what was detected at install time. In PnPBIOS machines, the BIOS is responsible for telling the operating system which busses are on the machine, which in turn drives the decision as to which bus drivers need to be loaded. The ISA enumerator, for example, is now loaded and enumerates all ISA devices, which, in turn, could have static VxDs that enumerate their children, and so on. Once all static VxDs have loaded, the system enters phase 3 of the boot process.

Phase 3: Protected Mode Operating System Initialization

Some VxDs are loaded during phase 2 of configuration management, but they initialize in protected mode during phase 3. Devices such as VPICD and VDMAD are passed a handle to the device node that caused them to load.

Resource arbitrators need to register with Configuration Manager during Sys_Critical_Init so that devices that register later in the boot process can allocate these resources.

Enumerators, such as the ISA bus enumerator, may add new device nodes to the in-memory devnode tree. Some of these nodes may also have children.

When all devices have been enumerated, all conflicts have been resolved, and all devices have been initialized, the system is ready to be used. The devnode tree will contain a complete description of every device connected to the machine as well as the resource requirements of those devices.