我們都知道,系統關機時要進行一系列的操作,包括:關閉窗口、結束進程和服務、保存數據等等。而像上面那樣快速關機是否省掉了某些步驟,這樣做又會不會對系統有所危害呢?
首先關機指令通知Windows子系統CSRSS.EXE,CSRSS.EXE,收到通知後會和Winlogon.EXE做一個數據交換,再由Winlogon.EXE通知CSRSS.EXE開始關閉系統的流程。
其次CSRSS.EXE依次查詢擁有頂層窗口的用戶進程,讓這些用戶進程退出。
然後開始終止系統進程。
以上3個步驟是整個Windows關機過程中最耗費時間的一段,大多數關機緩慢的原因都是因為這3個步驟引起的。
最後Winlogon.EXE調用NtShutdownSystem()函數來命令系統執行後面的掃尾工作,最後關機。
看來Windows關機過程還挺復雜的。而使用Ctrl鍵關機或是使用某些快速關機軟件,並不會經過完整的四步過程,而往往是跳過前三步而直接調用NtShutdownSystem()函數進行關機的。
很多軟件在運行時會將數據寫入內存,在退出時再保存到文件。如果不經過前面的步驟關機,會導至程序不能正常退出而丟失數據,這樣就可能因重要數據丟失造成一些意外的錯誤,對系統是有危害的。
所以,在此建議大家盡量不要使用Ctrl鍵關機或是某些快速關機軟件,畢竟數據的安全性比節省的那一點關機時間重要得多