#28
不能正常关机的处理办法
问:W98不能正常关机是什么原因,如何处理?安装WinXP后不能正常关机,按下电源开关也不能关机而又重新启动系统,是什么原因?
答:首先谈谈Windows系统自动关机的条件。在Win98及更高版本的系统中都支持自动关机,即不通过电源的物理开关实现关机。自动关机是通过操作系统支持的ACPI(Advanced Configuration and Power Interface,高级系统配置和电源管理)技术来实现的(当然ACPI的功能不仅仅是自动关机)。ACPI是由英特尔、微软和东芝等多家公司共同开发的,可以在BIOS之上通过操作系统进行电源管理。该技术要求主板控制芯片和其他I/O芯片与操作系统建立标准联系通道,使操作系统可以通过瞬间软电源开关(MSPS:Momentary Soft Power Switch)进行电源管理。因此,只有在硬件(控制芯片)、电源(ATX电源)及操作系统(Win98以上版本)都支持ACPI技术的前提下,自动关机才能实现。因此,为了保证自动关机的实现,在BIOS设置中,必须把“ACPI fnuction ”设置为“Enabled”;同时必须启用APM(高级电源管理)功能。
自动关机是一个比较复杂的过程,它是由系统进程Csrss和Winlogon配合并调用关机函数Shutdown Systen来完成的,这个函数进一步调用SetSystenPowerState关闭驱动程序和其它的当前执行程序子系统(如即插即用管理器、电源管理器、IO管理器 、配置管理器、内存管理器等)。此外,执行自动关机时,系统还要检查当前系统中各种外部设备的状态以及尚未关闭的应用程序的状态,处理各个数据缓冲器中的数据等。如果在上述工作中发生错误就不能正常关机。因此一般说来在关机之前应该使各种外设停止工作,关闭所有的应用程序后再行关机。
在Windows系统中的确常常出现自动关机失败的情况,下面谈谈具体的原因和处理办法。
1. 系统文件中自动关机程序有缺陷。为了确认是否是这个原因所致,可以作下述实验。在“开始/运行”中输入命令“rundll32 user.exe,exitwindows”看看能否正常关机。如果在这个命令下可以正常关机,表示自动关机程序可能有某种缺陷,如果使用的是Win98系统,请在“开始/程序/附件/系统工具/系统信息/工具/系统文件检查器”检查系统文件的完整性和修补文件。如果采用其它系统(Me/2000/XP),也可在相应的项目中完成文件修补。如果修补文件仍然不能解决问题,只能重新安装系统。而运行“rundll32 user.exe,exitwindows”也不能正常关机,则可能是操作系统中某些系统程序有缺陷,但是处理办法仍然是修补系统或者重新安装系统。
2. 毒和某些有缺陷的应用程序或者系统任务有可能造成关机失败。首先查杀病毒,在关机之前关闭所有的应用程序。由于有些应用程序是系统启动时加载的,因此可在“启动”菜单(在“开始/运行”中输入命令:“msconfig”)中逐个减去加载的程序,以便看看有无影响关机的文件(当然要重新启动之后才有生效)。
3. 外设和驱动程序兼容性不好,不能响应快速关机。可在“开始/运行”中输入命令:“msconfig”,在“常规”标签页中选择“高级”,在打开的窗口中选择“禁用快速关机”。如果怀疑外设有故障,也可以逐个卸载外设进行检查,以便找到有影响的外设。
4. 如果设置了在关闭Windows时使用声音文件,当该文件被破坏时也可以造成关机失败。请在“控制面板/声音/事件”中选择“退Windows”项,把声音名称设置为“无”。这样处理之后如果能够正常关机,则表示的确是该原因所致,可重新安装声音文件供使用。
5. 在Win98自动关闭时将显示“现在可以安全地关闭计算机了”,这个内容是由Windows目录下的“logos.sys”文件完成的,如果这个文件损坏则不能出现上述提示,而以文本形式提示:“you can now safely turn off you computer”,这也可能造成自动关机失败,恢复该文件即可。
6. 安装WinXP后不能自动关机,如排除了上述各种原因后,有可能是其控制面板中的电源选项设置不正确,请检查你的设置,保证ACPI和APM能够正常工作。也有的主板系统BIOS中的APM(高级电源管理)和Win XP之间不完全兼容(以AMI BIOS为多),因此不能自动关机。选择关机却变成重新启动系统,在这种情况下只能手动关机了(按下电源开关保持4秒钟后放开,如果少于4秒则无效)。解决问题的根本办法是升级主板的系统BIOS,采用新的版本。 |