Если я перезагружаю Windows, когда сторонний процесс заблокировал файл, будет ли эта блокировка снята автоматически?

276
The Coordinator

Если я перезагружаю Windows, когда сторонний процесс заблокировал файл, будет ли эта блокировка снята автоматически?

Под третьей стороной я подразумеваю любой процесс, отличный от Windows, например, мое программное обеспечение или программное обеспечение других производителей.

Если так, это 100% или зависит?

1
Можете ли вы определить третье лицо? Что-то получающее доступ к нему через сеть? Jarmund 8 лет назад 0
Готово. добавил это. Благодарю. The Coordinator 8 лет назад 1
Процесс будет остановлен до перезапуска Windows, так что, да, блокировка файла снята Ramhound 8 лет назад 0
Блокировки удерживаются в памяти во время работы ОС, а не помечают файлы на диске каким-либо образом. Таким образом, все процессы, принадлежащие блокировкам nyba, автоматически освобождаются, когда этот процесс завершается. Colin 't Hart 8 лет назад 0
@ Colin'tHart так, если на компьютере A заблокирован файл на диске удаленного компьютера B, и я вытащу вилку (отключение питания) на A, когда снимется блокировка на диске B? The Coordinator 8 лет назад 0
@ Colin'tHart Блокировка файлов в Windows полностью восходит к этому и по-прежнему совместима с этим: http://www.vfrazee.com/ms-dos/6.22/help/share.htm The Coordinator 8 лет назад 0

2 ответа на вопрос

2
user996142

Yes. Windows gives each program WaitToKillAppTimeout seconds to shutdown (default is 20): https://technet.microsoft.com/en-us/library/cc978624.aspx

After it, it closes all programs. All files are released, file handlers become invalid and Windows shuts down.

1
Jarmund

First of all, yes, as per the answer provided by @user996142

To elaborate on my comment regarding network processes, the answer is "eventually, yes". Anything accessing your files via the network is actually locking the file indirectly. The host process on your machine (for example, whatever process is behind the SMB sharing) does the actual file locking. If something is accessing this file, and you force a hibernate or suspend, when you resume it will still be locked until the SMB process notices that the client is not connected anymore, and release the lock. I am not sure of the timeframe here, but microsoft seems to like timeout defaults of 2 minutes.