The question isn't hard to understand. Very quickly here is the
(condensed) low down on how it happens.
1- The boot order and boot device is set in the BIOS of the computer.
Even if it's a SATA or RAID controller the BIOS *has* to be able to see
and read from the device to boot the computer. That is not specific to
Windows, it applies to any operating system.
2- With regards to booting fixed MBR disks the BIOS reads the Master
Boot Record on the disk and loads it into memory then the BIOS passes
the boot process to the Master Boot Code. The MBR contains the
partition table for the disk and a small amount of executable code
called the Master Boot Code, the Master Boot Code contains the necessary
instructions to continue the boot process.
3- The Master Boot Code scans the partition table and locates the
active or system partition and loads sector 0 (Partition Boot Sector) of
the active partition into memory and then executes the partition boot
sector code.
4- The partition boot sector code locates the operating system loader
and loads it into memory and launches the execution of the operating
system loader. Up to this point the BIOS, Master Boot Code and
Partition Boot Sector Code have been responsible for the boot process.
This happens regardless of the file system on the disk and regardless of
the type of disk controller (IDE, SATA, RAID) and regardless of the
operating system to be loaded.
5- As stated in step 4, the partition boot sector code executes the
operating system loader, in the case of Windows NT/2000/XP the operating
system loader is ntldr (short for nt loader). Ntldr contains a mini
file system driver that enables it to read the file system on the disk
and enables it to load the necessary files to load Windows. Although it
is universally accepted that ntldr is a part of Windows, in a pure sense
it really isn't. Ntldr is a DOS type program that is responsible for
*loading* Windows. While it is doing its job Windows is not yet
started, Windows will be started *by* ntldr.
6- Ntldr calls on NTDETECT.COM, another DOS type program, to gather
information about the computer hardware. NTDETECT.COM will gather a
list and that list will be used to create the HKEY_LOCAL_MACHINE\
HARDWARE key. At this point Windows is not yet started, the boot
process is still being handled by ntldr.
*Here is the answer to your question* :
"At this time Ntldr scans all of the services in the Registry subkey
HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services for device
drivers with a Start value of 0x0, which indicates that they should be
loaded but not initialized. Device drivers with these values are
typically low-level hardware device drivers, such as hard disk device
drivers."
7- At the same time as events in step 6 were happening Ntldr began
loading NTOSKRNL.EXE but the boot process has not yet been passed on to
Windows. Ntldr will only pass the boot process after it has finished
loading drivers with an 0x0 value.
And that is why Windows knows how to use SCSI/SATA/RAID drivers, it
knows because ntldr loads boot device drivers (0x0) for Windows before
it actually loads Windows.
John
DWalker wrote:
> John John <(E-Mail Removed)> wrote in news:#hbs7SAnHHA.4896
> @TK2MSFTNGP02.phx.gbl:
>
>
>>It's done by the Nt Boot Loader, ntldr.
>>
>>John
>>
>
>
> John: ntldr might be on the SCSI disk drive. Especially if that is the
> only disk in the system.
>
> How can Windows read the SCSI disk without a SCSI driver? And if the SCSI
> driver resides inside ntldr, which is on a SCSI disk, how can Windows boot?
>
> Is the motherboard smart enough to read ntldr off of a SCSI disk (during
> the next reboot, not during Windows install) without needing the SCSI
> driver itself?
>
> If that's the case, why is the SCSI driver needed at all?
>
>
> David
>
>
> P.S. I don't understand why my question is so hard to understand... It's
> like in the old days, where if you accidentally compressed the DLL file
> that contained Windows 95's decompression code, Windows 95 couldn't read
> the code to know how to uncompress the DLL.
>
> Or if you send someone a Zipped file that contains an unzipper program...
> you need to unzip the file to install the program.
|