Как 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