电子工程师的网站
首 页 | 新闻资讯 | 最新产品 | 解决方案 | 技术参数 | 设计应用 | 电路图 | 技术资料
维库知道
芯片资料 | 技术论坛
PDF资料 IC货源
  数据转换 现在位置: 首页 >数据转换     
快速关机是否会导致数据损坏?


最佳答案 - 由提问者1年前选出


作者:不详 来源:本站整理 发布时间:2005-8-22 0:31:20
减小字体 增大字体

  从平常的经验可以看出,执行了关机操作后电脑不会立即断电,Windows还会有一系列的动作如关闭打开的程序等,那么从执行关机命令到最终断电是一个什么样的过程呢?  

  Windows的正常关机涉及到多个组件和多个过程。我们来看一下它的基本过程。  

  ①用户发起关机指令后,发起关机指令的程序会通知 Windows子系统CSRSS.EXE,CSRSS.EXE收到通知后会和 Winlogon.EXE做一个数据交换,接着由Winlogon.EXE通知 CSRSS.EXE开始关闭系统的流程。

  ②CSRSS.EXE收到Winlogon.EXE的通知后,会依次查询拥 有顶层窗口的用户进程,让这些用户进程退出。如果某一个用户 进程在一个默认的超时时间5000毫秒(可以通过修改注册表键值 HKEY_CURRENT_USERControl PanelDesktop HungAppTimeout设定超时时间)内没有退出的话,Windows会显示 一个结束任务对话框用于询问用户是否结束这个任务。默认情况 下这个对话框会一直显示而不会自动关闭。  

  对于控制台程序来说,基本情况类似,只不过Windows使 用HKEY_CURRENT_USERControl PanelDesktop WaitToKillAppTimeout来设置超时时间。  

  ③接着是轮到终止系统进程了。系统进程包括SMSS.EXE 、Winlogon.EXE、Lsass.EXE等。Windows在终止系统进程的时候 并不像终止用户进程那样如果无法在规定时间内终止则提示用户 ,而是跳过这个进程,去执行下一个系统进程的终止操作。使用 的超时时间和第2步使用的时间相同。  

  上述3个步骤是整个Windows关机过程中最耗费时间的一 段,大多数关机缓慢的原因都是因为这3个步骤引起的。完成前3 个步骤后,进入关机操作的第4个阶段,这也是最后一个阶段。  

  ④Winlogon.EXE调用一个原生API函数NtShutdownSystem()来 命令系统执行后面的扫尾工作。在这个阶段里,Windows执行子系统会完成最后的关机操作,例如:设备驱动在这个阶段里完成 一些驱动设定的特殊操作;也是在这个阶段,配置管理系统将被 修改过的注册表数据回写到磁盘里面。等除了电源管理以外的全 部子系统完成退出以后,电源管理完成最后的操作:如重启、关 机等。  

  看来Windows关机过程还挺复杂的。我也试用了刘凯读者 所说的软件SuperFast Shutdown(http://www.xp- smoker.com/installations/superfast.zip),确实会让关机速 度加快。另外我们知道按Ctrl键的同时,再单击任务管理器窗口 中的菜单“关机→关闭”命令时,系统也会被快速关闭。它们又 是如何实现快速关机的目的呢?
  我分析了一下SuperFast Shutdown,它是用Visual Basic编写的。经过分析后得出一个令人惊讶的结论:SuperFast Shutdown首先使用RtlAdjustPrivilege()提升自己的权限,然后 直接调用NtShutdownSystem() 函数来完成关机过程。也就是说它跳过了最为耗费时间的前3个 步骤而直接进入第4个步骤,因此能够很快关机。  

  利用Ctrl键配合任务管理器的快速关机技巧类似于 SuperFast Shutdown的原理,即通过省略一些步骤来加快关机的 速度。  

  原来它们之所以能快速关机是因为投机取巧,跳过了一 些步骤。我记得当初使用Ctrl键配合任务管理器的关机技巧时, 关机速度是快了,不过却出现过Office各组件中的个性设置丢失 等莫名其妙的问题,这些问题和快速关机有关吗?  

  毫无疑问,利用前面的方法快速关机很容易导致你所说 的那些问题。这是因为在前3个步骤中,有一个让进程正常退出 的过程。大多数软件在编写的时候会把一些设置保存在自己私有 的内存空间里面,当软件关闭的时候才把这些设置回写到特定的 地方,如注册表或某个配置文件里。  

  而关机操作的第4步并没有提供一种途径能够让这些设置 被记录下来,因为这个阶段Windows认为前面所有必须经过的流 程已经完成,剩下的就是Windows核心组件的退出问题了。在这 种情况下,使用快速关机导致软件设置丢失等现象也就不足为怪 了。  

  实际上Windows本身的关机速度已经很快了,关机速度变 慢的多数问题都出在用户安装的程序上,由于一些设计不好的应 用程序或驱动程序的问题,造成了关机上的延迟。  

  因此要加快关机速度,正确的做法是尽量减少应用程序 等对关机过程的影响,如关闭一些无用的自启动程序等,而借助 SuperFast Shutdown或一些技巧执行非常规的关机操作尽量不要使用,毕竟 数据的安全性比节省的那几十秒钟重要得多。

 
我也来回答:
 
 
最新知道
诺亚舟电子词典可下载哪...
评述现代化理论
党校函授2007级公共管理...
C1815是NPN还是PNP
生日怎么过比较有意义
是 GSJB-2-7L
是 GSJB-2-7L
FSJB-2-7L型号搅拌机哪...
有需要设备维修的吗?
我的博客被屏蔽了 怎么...
热点排行
12v转换220v带150w的电...
k31115电源开关管用什么...
南开大学电子信息科学与...
MC1454构成的低功耗文氏...
ACC
请问商务英语自考有那些...
我家里的锅盖连一个基本...
何处有以秸杆为原料的制...
我174体重55公斤 这样算...
为什么漏电开关经常跳闸
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
总部:杭州建国北路707号星汇大厦6号楼1101室
电话:13357183237 QQ:344945827 303939539  邮箱:laz8258@163.com dzsc51@163.com