快速關(guān)機(jī)會(huì)導(dǎo)致Windows數(shù)據(jù)損壞嗎?

字號(hào):

從平常的經(jīng)驗(yàn)可以看出,執(zhí)行了關(guān)機(jī)操作后電腦不會(huì)立即斷電,Windows還會(huì)有一系列的動(dòng)作如關(guān)閉打開(kāi)的程序等,那么從執(zhí)行關(guān)機(jī)命令到最終斷電是一個(gè)什么樣的過(guò)程呢?
     Windows的正常關(guān)機(jī)涉及到多個(gè)組件和多個(gè)過(guò)程。我們來(lái)看一下它的基本過(guò)程。
     ①用戶發(fā)起關(guān)機(jī)指令后,發(fā)起關(guān)機(jī)指令的程序會(huì)通知Windows子系統(tǒng)CSRSS.EXE,CSRSS.EXE收到通知后會(huì)和Winlogon.EXE做一個(gè)數(shù)據(jù)交換,接著由Winlogon.EXE通知CSRSS.EXE開(kāi)始關(guān)閉系統(tǒng)的流程。
     ②CSRSS.EXE收到Winlogon.EXE的通知后,會(huì)依次查詢擁有頂層窗口的用戶進(jìn)程,讓這些用戶進(jìn)程退出。如果某一個(gè)用戶進(jìn)程在一個(gè)默認(rèn)的超時(shí)時(shí)間5000毫秒(可以通過(guò)修改注冊(cè)表鍵值HKEY_CURRENT_USERControl PanelDesktop HungAppTimeout設(shè)定超時(shí)時(shí)間)內(nèi)沒(méi)有退出的話,Windows會(huì)顯示一個(gè)結(jié)束任務(wù)對(duì)話框用于詢問(wèn)用戶是否結(jié)束這個(gè)任務(wù)。默認(rèn)情況下這個(gè)對(duì)話框會(huì)一直顯示而不會(huì)自動(dòng)關(guān)閉。
     對(duì)于控制臺(tái)程序來(lái)說(shuō),基本情況類似,只不過(guò)Windows使用HKEY_CURRENT_USERControl PanelDesktop WaitToKillAppTimeout來(lái)設(shè)置超時(shí)時(shí)間。
     ③接著是輪到終止系統(tǒng)進(jìn)程了。系統(tǒng)進(jìn)程包括SMSS.EXE、Winlogon.EXE、Lsass.EXE等。Windows在終止系統(tǒng)進(jìn)程的時(shí)候并不像終止用戶進(jìn)程那樣如果無(wú)法在規(guī)定時(shí)間內(nèi)終止則提示用戶,而是跳過(guò)這個(gè)進(jìn)程,去執(zhí)行下一個(gè)系統(tǒng)進(jìn)程的終止操作。使用的超時(shí)時(shí)間和第2步使用的時(shí)間相同。
     Windows的正常關(guān)機(jī)涉及到多個(gè)組件和多個(gè)過(guò)程。我們來(lái)看一下它的基本過(guò)程。
     ①用戶發(fā)起關(guān)機(jī)指令后,發(fā)起關(guān)機(jī)指令的程序會(huì)通知Windows子系統(tǒng)CSRSS.EXE,CSRSS.EXE收到通知后會(huì)和Winlogon.EXE做一個(gè)數(shù)據(jù)交換,接著由Winlogon.EXE通知CSRSS.EXE開(kāi)始關(guān)閉系統(tǒng)的流程。
     ②CSRSS.EXE收到Winlogon.EXE的通知后,會(huì)依次查詢擁有頂層窗口的用戶進(jìn)程,讓這些用戶進(jìn)程退出。如果某一個(gè)用戶進(jìn)程在一個(gè)默認(rèn)的超時(shí)時(shí)間5000毫秒(可以通過(guò)修改注冊(cè)表鍵值HKEY_CURRENT_USERControl PanelDesktop HungAppTimeout設(shè)定超時(shí)時(shí)間)內(nèi)沒(méi)有退出的話,Windows會(huì)顯示一個(gè)結(jié)束任務(wù)對(duì)話框用于詢問(wèn)用戶是否結(jié)束這個(gè)任務(wù)。默認(rèn)情況下這個(gè)對(duì)話框會(huì)一直顯示而不會(huì)自動(dòng)關(guān)閉。
     對(duì)于控制臺(tái)程序來(lái)說(shuō),基本情況類似,只不過(guò)Windows使用HKEY_CURRENT_USERControl PanelDesktop WaitToKillAppTimeout來(lái)設(shè)置超時(shí)時(shí)間。
     ③接著是輪到終止系統(tǒng)進(jìn)程了。系統(tǒng)進(jìn)程包括SMSS.EXE、Winlogon.EXE、Lsass.EXE等。Windows在終止系統(tǒng)進(jìn)程的時(shí)候并不像終止用戶進(jìn)程那樣如果無(wú)法在規(guī)定時(shí)間內(nèi)終止則提示用戶,而是跳過(guò)這個(gè)進(jìn)程,去執(zhí)行下一個(gè)系統(tǒng)進(jìn)程的終止操作。使用的超時(shí)時(shí)間和第2步使用的時(shí)間相同。