用power键关机和正常关机有什么不同?
Windows的关机步骤不是大多数人认为的那么简单。基本的过程是这样的: 1。 用户发起关机指令以后,发起关机指令的程序会通知Windows子系统CSRSS。EXE,CSRSS。EXE收到通知以后会和Winlogon。 EXE做一个数据交换,接着由Winlogon。EXE通知CSRSS。EXE开始关闭系统的流程 。 2。 CSRSS。EXE收到Winlogon。EXE的通知以后,会依次查询拥有顶层窗口的用户进程,让这些用户进程退出。 如果某一个用户进程在一个默认的超时时间5000毫秒(可以通过修改注册表键值HKEY_CURRENT_USERCont rol PanelDes...全部
Windows的关机步骤不是大多数人认为的那么简单。基本的过程是这样的: 1。 用户发起关机指令以后,发起关机指令的程序会通知Windows子系统CSRSS。EXE,CSRSS。EXE收到通知以后会和Winlogon。
EXE做一个数据交换,接着由Winlogon。EXE通知CSRSS。EXE开始关闭系统的流程 。 2。 CSRSS。EXE收到Winlogon。EXE的通知以后,会依次查询拥有顶层窗口的用户进程,让这些用户进程退出。
如果某一个用户进程在一个默认的超时时间5000毫秒(可以通过修改注册表键值HKEY_CURRENT_USERCont rol PanelDesktop HungAppTimeout设定超时时间)内没有退出的话,Windows会显示一个结束任务对话框用于询问用户是否结束这个任务。
默认情况下将显示这个对话框并一直保持而不会自动关闭。对于控制台程序来说,基本情况类似,只不过Windows使用HK EY_CURRENT_USERControl PanelDesktop WaitToKillAppTimeout值来设置超时时间。
3。 接着是轮到终止系统进程了。系统进程包括SMSS。EXE、Winlogon。EXE、Lsass。EXE等。Windows在终止系统进程的时候并不像终止用户进程那样如果无法在规定时间内终止则提示用户,而是跳过这个进程,去执行下一个系统 进程的终止操作。
使用的超时时间和第2步使用的时间相同。 上述3个步骤是整个Windows关机过程中最耗费时间的一段,大多数关机缓慢的原因都是因为这3个步骤引起的。完成前3个步骤以后,进入了关机操作的第4个阶段,也是最后一个阶段。
4。 Winlogon。EXE调用一个原生API函数NtShutdownSystem()来命令系统执行后面的扫尾工作。在这个阶段里面,Windows执行子系统会完成最后的关机操作,例如:设备驱动在这个阶段里面完成一些驱动设定的特殊操作; 也是在这个阶段,配置管理系统将被修改过的注册表数据会写道磁盘里面。
等除了电源管理以后的全部子系统完成退出以后,电源管理完成最后的操作:如重启、关机等。 大多数软件在编写的时候会把一些设置保存在自己私有的内存空间里面,当软件关闭的时候才把这些设置回写到特定的地方,如注册表或某个配置文件里面 。
快速关机则省略了前三步直接跳到第4步,所以会出现设置丢失的情况。 因此,为了你系统的健康,关机还是按照正常顺序来,数据的安全性往往比节省的那几十秒钟重要的多。收起