找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 9165|回复: 43

[转帖] Windows系统快速关机之谜

[复制链接]
发表于 2006-8-20 09:57:56 | 显示全部楼层 |阅读模式
  引:总有人在抱怨Windows的关机是如何的缓慢,实际上Windows本身的关机速度已经很快的了。问题主要出在用户安装的程序上面,由于一些设计不好的应用程序或驱动程序的问题,造成了关机上的延迟。

  总有人在抱怨Windows的关机是如何的缓慢,实际上Windows本身的关机速度已经很快的了。问题主要出在用户安装的程序上面,由于一些设计不好的应用程序或驱动程序的问题,造成了关机上的延迟。针对这个问题,网络上出现了类似于下面的技巧:

  打开任务管理器,按住“Ctrl”键的同时,再单击任务管理器窗口中的菜单“关机→关闭”命令时,系统会快速地被关闭,同样,在按住“Ctrl”键时,选择其他命令(例如重新启动)时,也会达到快速执行该命令的目的。

  同时,也出现了像SuperFast Shutdown一样的快速关机软件。

  在讨论上述技巧原理之前,先说说Windows是如何关机的:Windows关机步骤涉及到Windows多个组件和多个过程,简单的说,Windows的关机步骤不是大多数人认为的那么简单。基本的过程是这样的:

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

  2. CSRSS.EXE收到Winlogon.EXE的通知以后,会依次查询拥有顶层窗口的用户进程,让这些用户进程退出。如果某一个用户进程在一个默认的超时时间5000毫秒(可以通过修改注册表键值HKEY_CURRENT_USER\Cont rol Panel\Desktop\ HungAppTimeout设定超时时间)内没有退出的话,Windows会显示一个结束任务对话框用于询问用户是否结束这个任务。默认情况下将显示这个对话框并一直保持而不会自动关闭。对于控制台程序来说,基本情况类似,只不过Windows使用HK EY_CURRENT_USER\Control Panel\Desktop\ WaitToKillAppTimeout值来设置超时时间。

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

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

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

  了解了Windows的关机流程以后,下面分析一下前面说的快速关机操作是怎么完成的。先分析一下SuperFast Shutdown的原理,SuperFast Shutdown是使用Visual Basic编写的,体积很小,就15KB,经过分析以后得出一个令人惊讶的结论:SuperFast Shutdown首先使用RtlAdjustPrivilege()提升自己的权限,然后直接调用NtShutdownSystem() 函数来完成关机过程。由于跳过了最为耗费时间的前3个步骤而直接进入第4个步骤,所以造成了能够很快关机的假象。

  再看看任务管理器的快速关机是如何实现的:分析结果也是类似于SuperFast Shutdown的原理,也是通过省略一些步骤来加快关机的速度。

  那么,为什么在快速关机以后会出现设置丢失的情况呢?原因在于前3个步骤里面有一个让进程正常退出的可能。大多数软件在编写的时候会把一些设置保存在自己私有的内存空间里面,当软件关闭的时候才把这些设置回写到特定的地方,如注册表或某个配置文件里面 。而关机操作的第4步并没有提供一种途径能够让这些设置记录下来,因为这个阶段Windows已经认为前面所有必须经过的流程已经完成,剩下的就是Windows核心组件的退出的问题了。在这种情况下,使用快速关机导致设置丢失也不足为怪了。

  因此,为了你系统的健康,关机还是按照正常顺序来,数据的安全性往往比节省的那几十秒钟重要的多。


[ 本帖最后由 老毛桃 于 2006-8-21 10:46 AM 编辑 ]

评分

参与人数 1无忧币 +20 收起 理由
6618 + 20

查看全部评分

发表于 2006-8-20 23:39:05 | 显示全部楼层
看完,了解了快速关机的原理。
回复

使用道具 举报

发表于 2006-9-3 11:05:42 | 显示全部楼层
看明白了...谢谢.老毛桃!!
回复

使用道具 举报

发表于 2006-9-3 12:31:18 | 显示全部楼层
长知识了
回复

使用道具 举报

发表于 2006-9-3 15:47:21 | 显示全部楼层
从一些系统设置的快速关机、重启的功能就觉得有问题!但不知是怎么原理,看了,明白了!危险!
回复

使用道具 举报

发表于 2006-9-3 19:47:10 | 显示全部楼层
看明白了...谢谢.老毛桃!!
回复

使用道具 举报

发表于 2006-9-4 00:18:51 | 显示全部楼层
唔,原来知道一些,不过远没有老毛桃讲得详细,受教了。
回复

使用道具 举报

发表于 2006-9-4 12:36:52 | 显示全部楼层
我是来学习的
回复

使用道具 举报

发表于 2006-9-4 12:39:06 | 显示全部楼层
拔电源……最快了,或者直接摁接线板开关
回复

使用道具 举报

发表于 2006-9-4 14:47:43 | 显示全部楼层
原帖由 magictek 于 2006-9-4 12:39 发表
拔电源……最快了,或者直接摁接线板开关

我同意!:victory::lol
回复

使用道具 举报

发表于 2006-9-4 15:52:20 | 显示全部楼层
回复

使用道具 举报

发表于 2006-9-4 16:24:32 | 显示全部楼层
谢谢,都是正常关机,关闭显示器,让他自己关..
回复

使用道具 举报

发表于 2006-9-5 08:54:36 | 显示全部楼层
学习先!
回复

使用道具 举报

发表于 2006-9-13 18:41:42 | 显示全部楼层

好东西!!
回复

使用道具 举报

发表于 2006-9-14 02:04:06 | 显示全部楼层
我终于明白了电脑为什么会关机了,谢谢。
我的电脑已经连续运行了3年,看来可以关机休养几天了。
回复

使用道具 举报

发表于 2006-9-14 08:42:37 | 显示全部楼层
危险的快速关机。。。


有时偶就直接关电源。。啪。。够快吧?
回复

使用道具 举报

发表于 2006-9-14 13:44:26 | 显示全部楼层
恩,第2步好像最重要,涉及到应用程序的数据保存
回复

使用道具 举报

发表于 2006-9-14 18:09:02 | 显示全部楼层
关不上的时候就拔电源。
回复

使用道具 举报

发表于 2006-9-15 10:48:58 | 显示全部楼层
快速关机=暴力关机,呵呵
回复

使用道具 举报

发表于 2006-9-16 18:47:31 | 显示全部楼层
这么一说 ,那么网吧的机子快速关机就没危害的了``...因为有还原的软件保护数据..

老毛.是不是这样的了呢?那偶的找个工具.运行这个工具就执行像按住Ctrl+关机,重起的效果的..
用按键精灵可以实现的吧.或模拟精灵...

这对网吧的电脑来说很好呀```

[ 本帖最后由 xiangsui 于 2006-9-16 06:48 PM 编辑 ]
回复

使用道具 举报

发表于 2006-9-17 11:27:29 | 显示全部楼层
果然是有毛的挑
回复

使用道具 举报

发表于 2006-9-17 21:07:12 | 显示全部楼层
历害,如果有人问我为什么关机这么慢,我就让他重装,哈哈
回复

使用道具 举报

发表于 2006-9-18 10:43:12 | 显示全部楼层
还是第一次学习到,谢谢了
回复

使用道具 举报

发表于 2006-9-25 11:11:08 | 显示全部楼层
呵呵,POWER关机,也快速哈
回复

使用道具 举报

发表于 2006-9-25 12:35:43 | 显示全部楼层
矛盾无处不存在,凡事偷工减料都会付出代价,从来都是按照正常方式关机,呵呵。
回复

使用道具 举报

发表于 2006-9-26 09:36:16 | 显示全部楼层
又学了不少东西
回复

使用道具 举报

发表于 2006-9-26 18:57:54 | 显示全部楼层
我可不敢再试快速关机了,以前关机是快了,但是一启动就出现磁盘扫描!
回复

使用道具 举报

发表于 2006-9-26 19:18:46 | 显示全部楼层
最快的关机方法,供电局停电!
回复

使用道具 举报

发表于 2006-9-26 20:23:36 | 显示全部楼层
学习到了
回复

使用道具 举报

发表于 2006-9-29 23:43:50 | 显示全部楼层
其实嫌关机慢的原因是:想等机器关闭后,然后按下电源板开关让所有电器(比如显示器、音响、猫等)停电,即省电又安全。
在等待关机这个过程中的几十秒钟想干点别的,时间太短又做不了什么,只好眼巴巴地干等,烦。
    我们可以把电源板开关改造一下,换成电磁继电器。当按下电源板开关时继电器吸合,由电容延时电路维持5--10秒通电状态,此时按下主机电源开关,由于主机加电使(电磁继电器)电路中控制器保持高电位,继电器继续吸合。反之,当主机没加电或关机后,控制器处于低电位,使继电器跳闸、断电。这样改造后,只要按下关机键,该干嘛干嘛去,岂不快哉!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-4-16 20:48

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表