Итак.
1. При изменении параметров размера файла подкачки для определённого диска до нуля посредством интерфейса операционной системы — он удаляется после перезагрузки операционной системы.
2. При этом используется стандартный механизм операционной системы
PendingFileRenameOperations посредством вызова не менее стандартной функции WinAPI
MoveFileEx с соответствующим параметром:
Цитата:
lpNewFileName [in, optional]
The new name of the file or directory on the local computer.
…
If dwFlags specifies MOVEFILE_DELAY_UNTIL_REBOOT and lpNewFileName is NULL, MoveFileEx registers the lpExistingFileName file to be deleted when the system restarts. If lpExistingFileName refers to a directory, the system removes the directory at restart only if the directory is empty.
|
которая помещает перечень соответствующих файлов «pagefile.sys» в реестр в очередь на замену файлов:
Код:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager]
"PendingFileRenameOperations"=hex(7):…
И, при условии, что эта очередь будет успешно прочтена диспетчером сеансов «smss.exe» при загрузке — произойдёт удаление соответствующих файлов «pagefile.sys».
3. Наш случай — удаление файлов «pagefile.sys» программно (после программного отключения виртуальной памяти).
а) теоретически, мы, обладая правами администратора (или от имени учётной записи «LocalSystem»), можем записать туда перечень необходимых нам файлов «pagefile.sys» (хотя Microsoft этого делать
не рекомендует);
б) мы можем воспользоваться для тех же целей внешней утилитой «MoveFile» из комплекта:
PendMoves v1.1 and MoveFile v1.0 (которая фактически делает то же самое);
в) наконец, нам ничто не мешает банально назначить удаление необходимых файлов «pagefile.sys» вручную при загрузке системы любым способом:
* скриптом из
#2, соответствующим образом поправив его;
* командой из
#11, добавив необходимый в этом случае параметр «/a:sh»:
Код:

reg.exe add "hklm\software\microsoft\windows\currentversion\runonce" /V "delete object" /d "cmd.exe /c del /f /q /a:sh %systemdrive%\pagefile.sys" /f
Минус этого командного файла в том, что он не учитывает, что файлов подкачки могло быть отключено несколько — на разных разделах. Если есть потребность — я могу позже поправить скрипт из #2 и выложить — там данной проблемы не будет, поскольку скрипт знает на каких разделах он отключает файлы подкачки. В случае же простого применения скрипта из #5 — данная информация теряется (но, получить её так же можно, например, предварительным чтением данного параметра реестра с последующим разбором).
Ну, и, я ещё не смотрел идущий в комплекте «C:\WINDOWS\system32\pagefileconfig.vbs» — решается ли там данная проблема, и, если решается — то как.