Как Windows удаляет заблокированные файлы при следующей перезагрузке при удалении программы?
Как Windows удаляет заблокированные файлы при следующей перезагрузке при удалении программы? Может быть, с каким-то запланированным процессом?
1 ответ
Процесс удаления использует MoveFileEx
с 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 \ Диспетчер сеансов \PendingFileRenameOperations