如果想了解windows原理,Windows Internals 可能是最好的读物了。这本书在注1提到,有链接可以下载阅读。
好了,回到今天的主题:Win7系统启动过程及进程自启原理。这里,先贴上win7 启动过程的示意图,后面再讲解每个步骤的过程。
windows 7 的启动流程图:
上篇文章提到了系统封装工具,这里说下系统封装工具的引导原理。 windows启动时,Winlogon.exe会启动所有预设的自启动进程,如下: 注册表: HKLM\SYSTEM\Setup\CmdLine HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies \Explorer\Run HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows \Run HKCU\Software\Microsoft\Windows\CurrentVersion\Run HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce 如果是64位系统,还会查找以下路径: HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
文件路径:
\Documents and Settings\All Users\Start Menu\Programs\Startup \Documents and Settings\<username>\Start Menu\Programs\Startup
通常,系统封装工具的启动项都会记录在 HKLM\SYSTEM\Setup\CmdLine。这是因为,HKLM\SYSTEM\Setup\CmdLine是在显示登录界面之前执行,其他是在用户登录之后执行。 注意了,CmdLine项要配合 SetupType,就是 HKLM\SYSTEM\Setup\SetupType SetupType值设定如下: 0=什么都不做,直接显示登录界面 1=运行CMDLine,然后重启 2=运行CMDLine,然后显示登录界面
这样,系统启动时就会执行系统封装工具,然后重启,或显示登录界面。
2016/9/5 补充64位系统的启动路径说明 文献资料: [1] Windows.Internals.5th.Edition David Solomon/ Mark Russinovich [2] Windows 7 Startup Remah [3] Troubleshooting the Startup Process Microsoft TechNet [4] 浅谈 Windows 7 系统启动过程 没有开花的树