Как Windows премахва заключените файлове в следващото рестартиране, когато деинсталирате програма? Може би с някакъв планиран процес?
Отговори:
4 за отговор № 1Използва се процесът на деинсталиране MoveFileEx
с MOVEFILE_DELAY_UNTIL_REBOOT
flag set, което показва, че операцията не трябва да се появява до рестартиране lpNewFileName
параметър NULL показва, че файлът трябва да бъде изтрит:
Ако dwFlags указва MOVEFILE_DELAY_UNTIL_REBOOTи lpNewFileName е NULL, MoveFileEx регистрира файла lpExistingFileName за изтриване, когато системата се рестартира. Ако lpExistingFileName се отнася за директория, системата премахва директорията при рестартиране само ако директорията е празна.
Информация за MOVEFILE_DELAY_UNTIL_REBOOT
казва:
MOVEFILE_DELAY_UNTIL_REBOOT
Системата не премества файла дооперационната система се рестартира. Системата премества файла веднага след като се изпълни AUTOCHK, но преди да създаде каквито и да е странични файлове. Следователно, този параметър позволява функцията да изтрива файловете от страници от предишни стартиращи фирми
Горната функция записва запис в регистъра, който се обработва автоматично при стартиране:
Функцията съхранява местоположенията на файловете, които ще бъдат преименувани при рестартиране в следната стойност на регистъра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPendingFileRenameOperations