电脑关机为什么需要很长时间
1个回答
展开全部
分类: 电脑/网络
问题描述:
请教高手给我分析一下是什么原因出现一下现象:点击关机确定后要等几分钟桌面上的图标才消失,再等几分钟后才出现保存设备的窗口,在等一会后才彻底关机了。
解析:
首先让我们来看电脑关机需要那些动作;
从平常的经验可以看出,执行了关机操作后电脑不会立即断电,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执行子系统会完成最后的关机操作,例如:设备驱动在这个阶段里完成一些驱动设定的特殊操作;也是在这个阶段,配置管理系统将被修改过的注册表数据回写到磁盘里面。等除了电源管理以外的全部子系统完成退出以后,电源管理完成最后的操作:如重启、关机等。
当我们明白了电脑关机过程,也就找到了解决问题的途径;
加快XP开机及关机 速度
在〔开始〕→〔运行〕→键入〔Regedit〕
找到 HKEY_CURRENT_USER\Control Panel\Desktop 键,将右边窗口的 WaitToKillAppTimeout 改为 1000
( 原设定值:20000 )即关闭程序时仅等待1秒。
将键值 HungAppTimeout的数值改为:200( 原设定值:5000 ), 表示程序出错时等待0.5秒。
找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
将键值 WaitToKillServiceTimeout 设为:1000或更小。 ( 原设定值:20000 )
将键值〔HungAppTimeout〕的数值资料更改为〔200〕
问题描述:
请教高手给我分析一下是什么原因出现一下现象:点击关机确定后要等几分钟桌面上的图标才消失,再等几分钟后才出现保存设备的窗口,在等一会后才彻底关机了。
解析:
首先让我们来看电脑关机需要那些动作;
从平常的经验可以看出,执行了关机操作后电脑不会立即断电,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执行子系统会完成最后的关机操作,例如:设备驱动在这个阶段里完成一些驱动设定的特殊操作;也是在这个阶段,配置管理系统将被修改过的注册表数据回写到磁盘里面。等除了电源管理以外的全部子系统完成退出以后,电源管理完成最后的操作:如重启、关机等。
当我们明白了电脑关机过程,也就找到了解决问题的途径;
加快XP开机及关机 速度
在〔开始〕→〔运行〕→键入〔Regedit〕
找到 HKEY_CURRENT_USER\Control Panel\Desktop 键,将右边窗口的 WaitToKillAppTimeout 改为 1000
( 原设定值:20000 )即关闭程序时仅等待1秒。
将键值 HungAppTimeout的数值改为:200( 原设定值:5000 ), 表示程序出错时等待0.5秒。
找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
将键值 WaitToKillServiceTimeout 设为:1000或更小。 ( 原设定值:20000 )
将键值〔HungAppTimeout〕的数值资料更改为〔200〕
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询