在Windows XP上,以编程方式在单个c:驱动器上将Pagefile设置为“No Paging File”

时间:2010-05-11 14:58:22

标签: c# windows-xp pagefile

我正在尝试编写一个C#/ .NET应用程序来优化XP工作站的硬盘驱动器

  1. 将页面文件设置为“无分页文件”
  2. 重新启动
  3. 运行碎片整理实用程序以优化数据和应用
  4. 创建连续的页面文件
  5. 重新启动,从Sysinternals运行pagedefrag
  6. 我真的很挣#1。我删除以下密钥: SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PagingFiles

    重新启动后,系统控制面板显示“无页面文件”,但c:\ pagefile.sys仍然存在,并且它正由SYSTEM进程使用,所以我无法删除它,我无法优化HD。我尝试使用PendingFileRenamingOperations并且也爆炸了。我尝试使用WMI:Win32_PageFileSetting,但这只能让你设置大小(不是零 - 默认为2MB)。

    当然,如果我按照上面列出的手动步骤进行操作,则可行。

    我想我需要一个API调用来实现这一目标。

3 个答案:

答案 0 :(得分:4)

查看Delete类的Win32_PageFileDeleteEx方法:

该类已被弃用,但由于您在谈论Windows XP,可能它当时并未弃用。

答案 1 :(得分:1)

实际上,我犯的错误是删除了注册表项。

我需要做的是将多字符串值设置为

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

祝你好运!

答案 2 :(得分:0)

您可以修改注册表以更改页面文件设置。

它们存储在以下注册表的密钥中:

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

PagingFiles值包含“PageFileLocation MinSize MaxSize”格式的值(即“C:\pagefile.sys 1024 2048”) - 您可以在this文章中找到更多内容。