Как Windows удаляет заблокированные файлы при следующей перезагрузке при удалении программы? Может быть, с каким-то запланированным процессом?
Как Windows удаляет заблокированные файлы при следующей перезагрузке при удалении программы?
Ответы (1)
В процессе удаления используется MoveFileEx
a> с установленным флагом MOVEFILE_DELAY_UNTIL_REBOOT
, который указывает, что операция не должна выполняться до перезагрузки. Если параметр lpNewFileName
оставить NULL, это означает, что файл следует удалить:
Если dwFlags указывает MOVEFILE_DELAY_UNTIL_REBOOT, а lpNewFileName имеет значение NULL, MoveFileEx регистрирует файл lpExistingFileName для удаления при перезапуске системы. Если lpExistingFileName ссылается на каталог, система удаляет каталог при перезапуске, только если каталог пуст.
Информация о MOVEFILE_DELAY_UNTIL_REBOOT
гласит:
MOVEFILE_DELAY_UNTIL_REBOOT
Система не перемещает файл до перезапуска операционной системы. Система перемещает файл сразу после выполнения AUTOCHK, но до создания каких-либо файлов подкачки. Следовательно, этот параметр включает функцию удаления файлов подкачки из предыдущих запусков.
Вышеупомянутая функция записывает запись в реестр, которая автоматически обрабатывается при запуске:
Функция сохраняет расположение файлов, которые нужно переименовать при перезапуске, в следующем значении реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations