只要 1 个 现象/证据 说明我的猜想错了,那么你就打败我了!我就感激不尽了.
==========================================================
步入正文:
Windows PE 4.x(3.x 2.x类似)的启动过程如下.(来自微软官方说明: http://technet.microsoft.com/zh-cn/library/hh825062.aspx)
1.Windows PE 在特定媒体上加载启动扇区.系统将控制传递给 Bootmgr.Bootmgr 从启动配置数据 (BCD) 中提取基本启动信息,并将控制传递给包含在 Boot.wim 文件中的 Winload.exe 文件.然后 Winload.exe 将加载相应的硬件抽象层 (HAL),接着加载系统注册表配置单元和必要的启动驱动程序.Winload.exe 完成加载后,将会准备要执行内核 Ntoskrnl.exe 的环境.
备注
如果从只读媒体(如 CD-ROM 或 DVD-ROM)启动 Windows PE,则 Windows PE 将在内存中存储注册表配置单元,这样应用程序就可以写入注册表.应用程序对注册表所做的任何更改不会持续存在于不同的 Windows PE 会话.
2.该环境将执行 Ntoskrnl.exe 文件.然后 Ntoskrnl.exe 完成环境设置.系统将控制传递给会话管理器 (SMSS).
3.SMSS 加载注册表的剩余部分,然后配置运行 Win32 子系统 (Win32k.sys) 的环境及其各种进程.SMSS 加载用于创建用户会话的 Winlogon 进程,然后启动服务和剩余的非必要设备驱动程序及安全子系统 (LSASS).
4.Winlogon.exe 根据 HKEY_LOCAL_MACHINE\SYSTEM\Setup\CmdLine 注册表值来运行设置.Winpeshl.exe 将启动 %SYSTEMDRIVE%\sources\setup.exe 文件,前提是该文件存在.如果该文件不存在,Winpeshl.exe 将确定 %SYSTEMROOT%\system32\winpeshl.ini 文件是否指定了某个应用程序.如果该文件未指定应用程序,则 Winpeshl.exe 将执行 cmd /k %SYSTEMROOT%\system32\startnet.cmd 文件.默认情况下,Windows PE 包含启动 Wpeinit.exe 文件的 Startnet.cmd 文件.Wpeinit.exe 将加载网络资源并协调网络组件(如 DHCP).
5.当 Wpeinit.exe 结束时,将会出现命令提示符窗口.当命令提示符窗口出现时,Windows PE 的启动进程结束.
猜想一:
对第4部分,Winpesh.exe 的执行顺序并非 setup.exe —> winpeshl.ini —> startnet.cmd .实际上应该是: winpeshl.ini —> setup.exe —> startnet.cmd
(该环节, Winpeshl.exe 遇到任何一个,检测终止,立即运行该文件.)
[ 本帖最后由 achst 于 2013-2-8 21:34 编辑 ] |