我在Vista SP1上有一個Windows服務應用程序,我發現用戶正在重命名其可執行文件(正在運行時),然後重新啓動,從而導致它無法啓動下次啓動,因爲服務管理器已經重新命名,因此不能再找到exe文件。在Windows上重命名正在運行的進程的文件圖像
我似乎還記得,在舊版本的Windows中,您無法執行此操作,因爲操作系統在文件上放置了鎖。即使使用Vista SP1,當它運行時仍然無法複製現有文件 - Windows報告該文件正在使用 - 這是合理的。那爲什麼我應該被允許重新命名呢?如果Windows需要從exe文件的新代碼頁中進行分頁,但文件自啓動以來已被重命名,會發生什麼情況?我在重命名exe文件等時運行了進程監視器,但Process Mon沒有報告任何奇怪的事情,只是像任何其他文件一樣記錄更改文件名。
有沒有人知道幕後發生了什麼? Windows會允許正在運行的進程的文件名(或其依賴的DLL)被改變,這似乎是反常的。我在這裏錯過了什麼?