Vista SP1 で Windows サービス アプリケーションを使用していますが、ユーザーがその実行可能ファイルの名前を (実行中に) 変更してから再起動しているため、サービス マネージャーが exe を見つけられないため、次回の起動時に起動に失敗することがわかりました。名前が変更されたので、ファイル。
古いバージョンの Windows では、OS がファイルをロックしていたため、これを行うことができなかったことを思い出すようです。Vista SP1 でも、実行中に既存のファイルをコピーすることはできません。Windows はファイルが使用中であると報告します。これは理にかなっています。では、なぜ名前を変更できるようにする必要があるのでしょうか。Windows が exe から新しいコード ページをページインする必要があるが、起動後にファイルの名前が変更されている場合はどうなりますか? exeファイルなどの名前を変更しながらProcess Monitorを実行しましたが、Process Monは奇妙なことは何も報告せず、他のファイルと同様にファイル名を変更しただけでログに記録しました。
舞台裏で何が起こっているか知っている人はいますか?Windows が実行中のプロセスのファイル名 (またはそれに依存する DLL) の変更を許可するというのは、直感に反するように思えます。ここで何が欠けていますか?