В Windows XP программно установите для файла подкачки значение «Нет файла подкачки» на одном диске c:

Я пытаюсь написать приложение C#/.NET, которое оптимизирует жесткие диски для наших рабочих станций XP.

  1. Установите для файла подкачки значение «Нет файла подкачки».
  2. Перезагрузить
  3. Запустите утилиту дефрагментации, чтобы оптимизировать данные и приложения.
  4. Создать непрерывный файл подкачки
  5. Перезагрузитесь, запустите pagedefrag из Sysinternals.

Я действительно борюсь с № 1. Я удаляю следующий ключ: SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles

После перезагрузки панель управления системой показывает «Нет файла подкачки», но c:\pagefile.sys все еще существует и используется процессом SYSTEM, поэтому я не могу его удалить и не могу оптимизировать HD. Я попытался использовать PendingFileRenamingOperations, и это тоже не работает. Я пытался использовать WMI: Win32_PageFileSetting, но это позволяет вам устанавливать только размеры (не ноль — по умолчанию 2 МБ).

Конечно, если я сделаю шаги, описанные выше вручную, это сработает.

Я думаю, мне нужен вызов API, чтобы это произошло.


person NBPC77    schedule 11.05.2010    source источник
comment
Похоже, что файл подкачки используется для еще одного цикла загрузки. При второй перезагрузке файл больше не используется. Это для виндовс 7.   -  person usr    schedule 10.04.2016


Ответы (3)


Посмотрите на методы Delete или DeleteEx Win32_PageFile класс:

Этот класс устарел, но, поскольку вы говорите о Windows XP, возможно, тогда он не устарел.

person Hans Olsson    schedule 11.05.2010

На самом деле, моя ошибка заключалась в том, что я удалил раздел реестра.

Что мне нужно было сделать, так это установить многострочное значение на что-то вроде

rk.SetValue("PagingFiles", новая строка[]{""}, RegistryValueType.MultiString)

Удачи!

person NBPC77    schedule 30.05.2010

Вы можете изменить реестр, чтобы изменить настройки файла подкачки.

Они хранятся в следующем ключе реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

PagingFiles содержит значения в формате 'PageFileLocation MinSize MaxSize' (т. е. 'C:\pagefile.sys 1024 2048') — вы можете найти больше об этом в эта статья.

person Regent    schedule 11.05.2010
comment
Собственно, я пытаюсь избавиться от файла подкачки (временно). Я знаю, что есть вызов WMI, который делает то, что вы говорите, но XP говорит, что это не так (устанавливая минимальное и максимальное значение на ноль) и вместо этого сбрасывает его до 2 МБ. - person NBPC77; 12.05.2010
comment
@ NBPC77: Возможно, API запрещает удаление всех файлов подкачки. У меня в системе нет файла подкачки (8 ГБ ОЗУ вполне достаточно) и это значение PagingFiles состоит из двух пустых строк. - person Regent; 12.05.2010