首先談談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配合並調用關機函數ShutdownSystem來完成的,這個函數進一步調用SetSystemPowerState關閉驅動程序和其他的當前執行程序子系統(如即插即用管理器、電源管理器、執行程序、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,采用新的版本。