На 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 все еще не существует и его используемое Системным процессом, таким образом, я не могу удалить его, и я не могу оптимизировать HD. Я испытал использование PendingFileRenamingOperations, и это бомбит также. Я пытался использовать WMI: Win32_PageFileSetting, но который только позволяет Вам установить размеры (не нуль - значения по умолчанию к 2 МБ).

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

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

11
задан MPelletier 30 August 2010 в 21:19
поделиться

3 ответа

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

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

4
ответ дан 3 December 2019 в 11:36
поделиться

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

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

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

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

0
ответ дан 3 December 2019 в 11:36
поделиться

На самом деле, я сделал ошибку - удалил раздел реестра.

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

rk.SetValue ("PagingFiles", new string [] {""}, RegistryValueType.MultiString)

Удачи!

1
ответ дан 3 December 2019 в 11:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: