小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

延遲刪除的故事

 星爺 2006-03-29

注意:
1
.本文內(nèi)容用于描述Windows 2000 及以上操作系統(tǒng)提供的延遲刪除的功能,作者擁有本文的全部版權(quán)。
2
.未經(jīng)許可,嚴(yán)禁任何個(gè)人、組織將本文用于任何商業(yè)場(chǎng)所、各種平面媒體和各種商業(yè)網(wǎng)站上。違者需要承擔(dān)相應(yīng)的法律責(zé)任。
3
.對(duì)于本文提供的內(nèi)容,作者保留隨時(shí)進(jìn)行修訂而不告知的權(quán)利。
4
.對(duì)于本文所列舉軟件、書籍的版權(quán),均由軟件持有者和書籍作者所有。

說(shuō)起延遲刪除,大家可能都很陌生,但是實(shí)際上,該功能已經(jīng)被各種軟件所采用:如安裝Windows 補(bǔ)丁程序(如:hotFix Servicepack )、安裝office 補(bǔ)丁程序、反病毒軟件的的清除、軟件的升級(jí)等等等等… …
本文將首先介紹延遲刪除/重命名的工作機(jī)制,然后介紹如何使用這個(gè)功能維護(hù)你的系統(tǒng)。

一、什么是延遲刪除/重命名

很多人可能都碰到過(guò)下面的一種情形:在安裝某個(gè)軟件的時(shí)候,安裝程序正在初始化,突然,安裝程序彈出一個(gè)類似于下面所描述的警告提示:發(fā)現(xiàn)有重啟操作沒(méi)有完成,在重啟系統(tǒng)之前安裝過(guò)程不能繼續(xù)。然后安裝程序自動(dòng)退出。
這類提示最常發(fā)生在安裝Microsoft SQL Server 的時(shí)候。
之所以出現(xiàn)這種提示,是因?yàn)榘惭b程序檢測(cè)到了有未完成的重啟。那么安裝程序是如何發(fā)現(xiàn)有未完成的重啟呢?這就是本文的要點(diǎn)所在:Wind 。仍Z000lXPIServer 2003 的延遲刪除/重命名功能。

對(duì)于軟件開發(fā)人員來(lái)說(shuō),Windows 2000/XP/Server 2003 的延遲刪除/重命名功能并不是什么新鮮玩意,但是其實(shí)行的機(jī)制倒很少有人會(huì)關(guān)注。本文不想過(guò)多地涉及windows內(nèi)部的實(shí)現(xiàn)機(jī)制,但是僅從一個(gè)側(cè)面簡(jiǎn)單的描述一下Windows Z000lXPIServer 2003 的延遲刪除/重命名功能的原理和適用范圍。

對(duì)于windows操作系統(tǒng)而言,要想成功的刪除一個(gè)文件或重命名一個(gè)文件,需要滿足一個(gè)條件:文件不能被占用。可是有的時(shí)候,要?jiǎng)h除/重命名的文件總是被某個(gè)進(jìn)程占用著,這樣一來(lái)操作者就無(wú)法對(duì)這個(gè)文件進(jìn)行刪除和重命名。要解決這個(gè)問(wèn)題,微軟在windows操作系統(tǒng)里面提出了一個(gè)延遲刪除/重命名的功能。
需要說(shuō)明的是,這個(gè)功能不僅存在于Windows 2000/XP/Serve 2003 操作系統(tǒng)里面,對(duì)于windows 9X ,這個(gè)功能也是存在的.只不過(guò)本文的重點(diǎn)在于介紹

延遲刪除/重命名的基本實(shí)現(xiàn)原理是這樣的:
1.
如果有任何應(yīng)用程序需要使用延遲刪除l 重命名功能,那么該應(yīng)用程序會(huì)使用一個(gè)特殊的參數(shù)MOVEFILE_DELAY_UNTIL_REBOO 丁來(lái)命令win32 API 函數(shù)MoveFileEx() 在系統(tǒng)里面注冊(cè)一個(gè)延遲刪除l 重命名操作。注冊(cè)的記錄放在注冊(cè)表HKEY LOCAL MACHINE \ SYSTEM \ CurrentControlset \ Control \ Session Manager \ PendingFileRename0perations PendingFileRenameoperationsZ 鍵值下面。該鍵值是一個(gè)REG_MULTI_SZ 類型的鍵值,注冊(cè)表編輯器無(wú)法直接編輯這種類型的鍵值。
警告!不要使用注冊(cè)表編輯器直接編輯這個(gè)鍵值,這樣會(huì)造成系統(tǒng)無(wú)法判定是該執(zhí)行延遲刪除操作還是延遲重命名操作。
2.
操作系統(tǒng)在下次啟動(dòng)的時(shí)候,由smss . exe 對(duì)上述的注冊(cè)表鍵值進(jìn)行讀取分析并完成相應(yīng)的操作。需要注意的是,在執(zhí)行延遲操作的時(shí)候,Win32 子系統(tǒng)并沒(méi)有啟動(dòng),也就是說(shuō)延遲操作是在沒(méi)有Win32 子系統(tǒng)干擾的情形下完成的。這樣設(shè)計(jì)的一個(gè)最大好處就是可以替換任何受鋤n32 子系統(tǒng)保護(hù)的文件。
3.
如果上述鍵值指定了一個(gè)文件需要被刪除,那么smss . exe 將執(zhí)行刪除操作,如果指定的是重命名操作,那么smss . exe 執(zhí)行的是重命名操作。
注意!如果執(zhí)行重命名操作的時(shí)候,和新文件名同名的文件存在,那么原有的文件將被覆蓋掉。例如:假設(shè)有一個(gè)文件C:\ 1.DLL 存在,而延遲重命名里面的記錄是把C : \ 2.DLL 改名為C:\ 1.DLL ,那么原來(lái)的C:\ 1.DLL 將被C:\ 2.DLL 比覆蓋掉。4 .當(dāng)所有的記錄完成以后,系統(tǒng)自動(dòng)把上述的注冊(cè)表鍵值刪除掉,不會(huì)存留任何痕跡的。

現(xiàn)在說(shuō)說(shuō)軟件開發(fā)人員是如何使用這個(gè)功能的。
以安裝windows Service pack 為例。在Service pack 安裝完成以后,安裝程序肯定會(huì)提示用戶重新啟動(dòng)。其實(shí),重新啟動(dòng)的過(guò)程就是一個(gè)執(zhí)行延遲刪除/重命名的過(guò)程。由于在安裝Service pack 的時(shí)候,很多文件不能夠被新版本的文件替換,如果碰到這個(gè)情況,安裝程序?qū)?huì)把新版本文件改名并放到和舊版本文件同樣的目錄下面,然后在系統(tǒng)里面注冊(cè)一個(gè)延遲重命名操作。系統(tǒng)在下次啟動(dòng)的時(shí)候,將執(zhí)行這個(gè)延遲重命名操作以便讓舊版本文件被新版本文件替換掉從而完成Service pack 的安裝。
對(duì)于延遲刪除來(lái)說(shuō),和延遲重命名類似。如果發(fā)現(xiàn)有一個(gè)文件不能夠被立即刪除,則軟件會(huì)注冊(cè)一個(gè)延遲刪除,讓操作系統(tǒng)在下次啟動(dòng)的時(shí)候自動(dòng)把文件刪除掉。

對(duì)于延遲刪除/重命名功能來(lái)說(shuō),軟件開發(fā)人員把這個(gè)功能用于以下方面:

新版本文件的替換
刪除不能立即刪除的文件

對(duì)于一般用戶而言,什么時(shí)候需要這個(gè)功能呢?

無(wú)法重命名一個(gè)總是被某個(gè)進(jìn)程占用的文件
無(wú)法刪除一個(gè)文件。特別是要?jiǎng)h除一個(gè)計(jì)算機(jī)病毒體文件的時(shí)候。

以上兩種情況都可以使用延遲操作,讓操作系統(tǒng)按照你的設(shè)想完成你需要的操作。

回過(guò)頭說(shuō)說(shuō)安裝程序是如何發(fā)現(xiàn)由未完成的重啟的。由于延遲操作是記錄在注冊(cè)表特定鍵值下的,因此只需要檢測(cè)特定的鍵值就可以發(fā)現(xiàn)有未完成的重啟操作。

二、使用pendM0ve 來(lái)完成自己的延遲刪除/重命名

這里介紹使用pendMove 來(lái)完成自己的延遲刪除l 重命名操作。軟件開發(fā)人員也可以自己使用win32 API 函數(shù)編寫自己的工具。
PendMove
smallfrogs 開發(fā)的一款基于延遲刪除l 重命名原理的小工具,能夠?qū)崿F(xiàn)對(duì)指定文件的延遲刪除/重命名的配置,還能夠查看l 撤銷已經(jīng)注冊(cè)的延遲操作。該工具可以從http://www./pendmove/download.html免費(fèi)下載到。

使用延遲刪除功能:
點(diǎn)擊源文件框右邊的按鈕,選擇要?jiǎng)h除的文件,然后點(diǎn)擊保存修改按鈕就可以完成延遲刪除的注冊(cè)了。

2 .使用延遲重命名功能
點(diǎn)擊源文件框右邊的按鈕,選擇要改名的文件,然后點(diǎn)擊目標(biāo)文件右邊的按鈕,輸入新的文件名,最后點(diǎn)擊保存修改按鈕就可以完成延遲重命名的注冊(cè)了。

3 .查看已經(jīng)注冊(cè)的延遲操作
點(diǎn)擊查看記錄按鈕可以看到所有已經(jīng)注冊(cè)的延遲操作。

本窗口將顯示系統(tǒng)在下次啟動(dòng)的時(shí)候?qū)⒁獔?zhí)行的延遲刪除/重命名操作。

在這個(gè)對(duì)話框里面可以顯示所有已經(jīng)注冊(cè)的延遲操作。如果一個(gè)記錄后面跟有兩個(gè)空行才到下一個(gè)記錄,那么這個(gè)記錄一定是一個(gè)延遲刪除記錄。如果一行字符后面換行又是另一行字符,那么這2 行字符是一個(gè)延遲重命名操作。在前面的一行是一個(gè)舊文件名,而后面的一行是新的文件名。

4 .撤銷所有的延遲操作
在查看記錄對(duì)話框里面點(diǎn)擊全部撤銷按鈕可以把所有已經(jīng)注冊(cè)的記錄刪除掉。

三、后記

由于本人水平有限,如果發(fā)現(xiàn)有不正確的或有疏漏的地方,請(qǐng)指出:如果對(duì)本文有什么意見(jiàn),也可以告知我。我的Email 是:smallfrog@gmail.com ,謝謝各位!

感謝您的閱讀

SmallfrogS 2005/6/23

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多