在系统初始化的时候,决定驱动程序在什么时候被载入的信息保存在注册表中。
最早的一批驱动是由ntldr载入内存的(仅仅是载入)
第二批是由IO管理器载入内存的
第三批是由 SCM(Service Control Manager) 载入的
一个驱动在第几批中被载入是由 HKLM/SYSTEM/CurrentControlSet/Services/驱动名/Start 的值来决定。该值为0,第一批被载入。该值为1,第二批被载入。该值为2,第三批被载入。对于同一批驱动中的驱动,按驱动所在组的先后载入。组的先后顺序 由 HKLM/SYSTEM/CurrentControlSet/Control/ServiceGroupOrderList 决定。每个驱动的 HKLM/SYSTEM/CurrentControlSet/Services/驱动名/Group 决定了驱动所属的组,如果没有这个 Services驱动名Group ,那么就在所有组之后。对于同一个组中的驱动,按驱动的Tag的先后载入。Tag的先后顺序由 HKLM/SYSTEM/CurrentControlSet/Control/GroupOrderList组名 决定。每个驱动的 HKLM/SYSTEMCurrent/ControlSet/Services/驱动名/Tag 决定了驱动在组中的Tag。 这个Tag值的大小由驱动安装的先后顺序决定,先安装的Tag值小,后安装的Tag值大。
系统启动过程:
第一阶段:系统加电自检POST过程。POST是Power On Self Test的缩写,也就是加电自检的意思,微机执行内存FFFF0H处的程序(这里是一段固化的ROM程序),对系统的硬件(包括内存)进行检查。
第二阶段:读取DPT和MBR。当微机检查到硬件正常并与CMOS设置相符后,按照CMOS设置从相应设备启动(我们这里假设从硬盘启动),读取硬盘的分区表(DPT)和主引导记录(MBR)。
第三阶段:读取OBR。微机正确读取DPT和MBR,如果MBR和DPT校验正确,则执行MBR并进一步读取OBR(位于每一个主分区的第一个扇区),然后执行OBR。
第四阶段:装载系统隐含文件。将DOS系统的隐含文件IO.SYS入内存,加载基本的文件系统FAT,IO.SYS将MS.SYS读入内存,并处理System.dat和User.dat文件,加载磁盘压缩程序。
第五阶段:系统配置。系统隐含文件装载完成,微机将执行系统隐含文件,并执行系统配置文件(Config.sys),加载Config.sys中定义的各种驱动程序。
第六阶段:调入命令解释程序(Command.com)。系统装载命令管理程序,以便对系统的各种操作命令进行协调管理(我们所使用的Dir、Copy等内部命令就是由Command.com提供的)。
第七阶段:执行批处理文件(Autoexec.bat)。微机将一步一步地执行批处理文件中的各条命令。
第八阶段:加载Win.com。Win.com负责将Windows下的各种驱动程序和启动执行文件加以执行,至此启动完毕。
http://support.microsoft.com/kb/115486/zh-cn