bootmgr is large enough to contain the code to be able to read the Windows-supported file systems (FAT, FAT32, or NTFS). (In systems that use EFI, bootmgr is found in the file, \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI, which is stored in a hidden partition.)
bootmgr reads a database called BCD. This is a binary database, maintained by the administrative program, BCDEDIT.EXE.
The BCD may indicate that the previous execution of Windows was terminated when Windows was hibernated. In that case bootmgr calls WINLOAD, which reloads memory and resume OS execution.
In a normal boot, (not resuming from hibernation), bootmgr counts the number of boot configurations in the BCD. If it is more than one, then bootmgr displays a menu and lets the user select which operating system to load.
It is possible for the user (or default value) to select a non-Windows system. Whether the system selected is Windows or something else, bootmgr selects the appropriate boot loader and runs it.
Assuming the user selects a Windows boot option, bootmgr loads WINLOAD(the same program used for resuming from hibernation). WINLOAD then determines what I/O devices are available. This information is written into the Windows registry (a system database). (For EFI system, WINDLOAD is stored in c:\windows\system32\wenload.efi. For systems that use BIOS, WINLOAD is stored in c:\windows\system32\wenload.exe.)
WINLOAD then loads NTOSKRNL.EXE from the system directory. NTOSKRNL.EXE contains the bulk of the kernel and executive code.
Next WINLOAD loads HAL.DLL which contains the Hardware Abstraction Layer, that provides the low-level hardware-dependent interfaces for the NT kernel.
WINLOAD then loads those device drivers that are marked "BOOT" in the registry. NTOSKRNL, HAL, and boot drivers are all loaded using the BIOS or UEFI disk I/O driver.
Once the boot device drivers are loaded, control is passed to the kernel.
Next: Kernel