Как Windows удаляет заблокированные файлы при следующей перезагрузке при удалении программы?

Как Windows удаляет заблокированные файлы при следующей перезагрузке при удалении программы? Может быть, с каким-то запланированным процессом?


person user3254515    schedule 08.02.2014    source источник


Ответы (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\Session Manager\PendingFileRenameOperations

person Ken White    schedule 08.02.2014
comment
Это на настольных компьютерах и серверах. Windows CE и Windows Mobile не имеют API или поведения. (Windows CE по-прежнему популярна из-за области медицины и процесса сертификации устройств). Я не уверен в Windows Phone, так как никогда с ним не сталкивался. - person jww; 08.02.2014
comment
@noloader: есть ли в CE и Mobile деинсталляторы, которые откладывают удаление файлов до перезагрузки устройства? Я признаю, что в настоящее время у меня нет устройства CE или Windows Mobile, но я никогда не видел устройство, которое откладывало бы удаление файлов до перезагрузки. Если он никогда не нужен, это объясняет, почему его нет на этих платформах. - person Ken White; 08.02.2014