文/ 出處:電腦報
安徽趙凱讀者來信:“我最近下載了一款快速關(guān)機的軟件,這款軟件非常厲害,幾乎眨眼工夫就將電腦關(guān)閉了。很多人說這個軟件可能會破壞數(shù)據(jù),但他們又沒有說出相應(yīng)的依據(jù)。我現(xiàn)在很矛盾,有了一個好東西,卻又不敢用。董師傅,希望你能給一個權(quán)威的說法,以消除我的疑惑。”
不光是趙凱讀者提到的軟件能實現(xiàn)快速關(guān)機,而且采用一些技巧也可以達(dá)到同樣的目的,但這樣操作究竟會帶來什么后果呢?這次被師傅邀請到“話題館”參與討論的是對Windows系統(tǒng)頗有研究、榮獲2004年微軟最有價值專家的張康宗先生。
從平常的經(jīng)驗可以看出,執(zhí)行了關(guān)機操作后電腦不會立即斷電,Windows還會有一系列的動作如關(guān)閉打開的程序等,那么從執(zhí)行關(guān)機命令到最終斷電是一個什么樣的過程呢?
Windows的正常關(guān)機涉及到多個組件和多個過程。我們來看一下它的基本過程。
①用戶發(fā)起關(guān)機指令后,發(fā)起關(guān)機指令的程序會通知Windows子系統(tǒng)CSrss.EXE,CSRSS.EXE收到通知后會和Winlogon.EXE做一個數(shù)據(jù)交換,接著由Winlogon.EXE通知CSRSS.EXE開始關(guān)閉系統(tǒng)的流程。
②CSRSS.EXE收到Winlogon.EXE的通知后,會依次查詢擁有頂層窗口的用戶進(jìn)程,讓這些用戶進(jìn)程退出。如果某一個用戶進(jìn)程在一個默認(rèn)的超時時間5000毫秒(可以通過修改注冊表鍵值HKEY_CURRENT_USERControl PanelDesktop HungAPPTimeout設(shè)定超時時間)內(nèi)沒有退出的話,Windows會顯示一個結(jié)束任務(wù)對話框用于詢問用戶是否結(jié)束這個任務(wù)。默認(rèn)情況下這個對話框會一直顯示而不會自動關(guān)閉。
對于控制臺程序來說,基本情況類似,只不過Windows使用HKEY_CURRENT_USERControl PanelDesktop WaitToKillAppTimeout來設(shè)置超時時間。
③接著是輪到終止系統(tǒng)進(jìn)程了。系統(tǒng)進(jìn)程包括SMSS.EXE、Winlogon.EXE、Lsass.EXE等。Windows在終止系統(tǒng)進(jìn)程的時候并不像終止用戶進(jìn)程那樣如果無法在規(guī)定時間內(nèi)終止則提示用戶,而是跳過這個進(jìn)程,去執(zhí)行下一個系統(tǒng)進(jìn)程的終止操作。使用的超時時間和第2步使用的時間相同。
Windows的正常關(guān)機涉及到多個組件和多個過程。我們來看一下它的基本過程。
①用戶發(fā)起關(guān)機指令后,發(fā)起關(guān)機指令的程序會通知Windows子系統(tǒng)CSRSS.EXE,CSRSS.EXE收到通知后會和Winlogon.EXE做一個數(shù)據(jù)交換,接著由Winlogon.EXE通知CSRSS.EXE開始關(guān)閉系統(tǒng)的流程。
②CSRSS.EXE收到Winlogon.EXE的通知后,會依次查詢擁有頂層窗口的用戶進(jìn)程,讓這些用戶進(jìn)程退出。如果某一個用戶進(jìn)程在一個默認(rèn)的超時時間5000毫秒(可以通過修改注冊表鍵值HKEY_CURRENT_USERControl PanelDesktop HungAppTimeout設(shè)定超時時間)內(nèi)沒有退出的話,Windows會顯示一個結(jié)束任務(wù)對話框用于詢問用戶是否結(jié)束這個任務(wù)。默認(rèn)情況下這個對話框會一直顯示而不會自動關(guān)閉。
對于控制臺程序來說,基本情況類似,只不過Windows使用HKEY_CURRENT_USERControl PanelDesktop WaitToKillAppTimeout來設(shè)置超時時間。
③接著是輪到終止系統(tǒng)進(jìn)程了。系統(tǒng)進(jìn)程包括SMSS.EXE、Winlogon.EXE、Lsass.EXE等。Windows在終止系統(tǒng)進(jìn)程的時候并不像終止用戶進(jìn)程那樣如果無法在規(guī)定時間內(nèi)終止則提示用戶,而是跳過這個進(jìn)程,去執(zhí)行下一個系統(tǒng)進(jìn)程的終止操作。使用的超時時間和第2步使用的時間相同。
新聞熱點
疑難解答
圖片精選