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

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

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

Я действительно борюсь с # 1. Я удаляю следующий ключ: SYSTEM \ CurrentControlSet \ Control \ Диспетчер сеансов \ Управление памятью \ PagingFiles

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

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

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

Ответы [ 3 ]

4 голосов
/ 11 мая 2010

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

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

1 голос
/ 30 мая 2010

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

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

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

Удачи!

0 голосов
/ 11 мая 2010

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

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

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

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

...