Windows 8中“C:\ swapfile.sys”的用途是什么?


60

在Windows 8上,C中有以下两个文件:

  1. pagefile.sys - 毫不奇怪。它与我配置的页面文件大小一样大
  2. swapfile.sys - 大小为256MB

这个额外的目的是什么 swapfile.sys 文件?

我正在寻找一个权威的答案。网上已有足够的猜测。


3
答案 这里 看起来相当权威,将Metro应用程序的暂停/恢复命名为swapfile.sys的一个主要用途。
Indrek

@Indrek是的。我希望能有更多细节。为什么 文件?现有的答案在细节上非常薄弱。
usr

4
奇怪的是,Windows 8同时支持交换和分页。页面文件支持过度使用的物理内存,并保存没有的对象 在很长一段时间内访问。交换文件保存从内存中主动弹出的内容,因为它们不会 访问了一段时间。分页在高性能桌面上更有效。交换在低性能平板电脑和手机上更有效。如果使用了一个文件,由于用于分页的小型固定大小页面和用于交换的大块组合,它将变得非常分散。
David Schwartz

需要有两个文件,因为太多程序假定页面文件仅用于分页,而不是分页
surfasb

Answers:


5

发布的答案中的几个链接最终链接到它,但是 http://blogs.technet.com/b/askperf/archive/2012/10/28/windows-8-windows-server-2012-the-new-swap-file.aspx

似乎是一个更确定的答案:

您可能会问,“为什么我们需要另一个虚拟页面文件?”嗯,有   在引入Modern App时,我们需要一种方法来管理它们   传统虚拟内存/页面文件方法之外的内存。   有了这个,“%SystemDrive%\ swapfile.sys”诞生了。

Windows 8可以有效地编写一个完整的(私有)工作集   暂停现代应用程序到磁盘,以获得额外的内存时   系统检测压力。这个过程类似于冬眠   一个特定的应用程序,然后在用户切换回时恢复它   该应用程序。在这种情况下,Windows 8利用了   暂停/恢复现代应用程序的机制以清空或重新填充   应用程序的工作集。


39

来自微软的一名工作人员 Technet论坛

这是系统内部使用的一种特殊类型的页面文件,可以使某些类型的分页操作更加高效。它与自动转储设置无关。

暂停/恢复Metro风格的应用程序是一种情况,未来可能会有其他应用程序。


3

虽然我不确定它的用途是什么,但看起来它用于存储/缓存当前正在使用的内容。

如果你很想知道里面有什么,你可以 获取锁定的文件 喜欢 swapfile.sys 要么 PAGEFILE.SYS 从正在运行的Windows系统中使用 FGET (法医获得HBGary)。

运行以下命令(以管理员身份):

FGET -extract %systemdrive%\swapfile.sys OUTPUT_PATH

之后,您可以使用执行字符串分析 Strings。内 swapfile.sys 在我的系统上,我发现的其他事情:

我的电子邮件地址,几封电子邮件和电子邮件地址,环境   变量,我访问过的网页的部分内容,mimetype字符串,用户代理字符串,XML文件,   URL,IP地址,用户名,库函数名称,应用程序   偏好,路径字符串等

我也试过了 雕刻文件 寻找常见的图像格式,发现了几个JPEG和PNG,包括应用程序图标,网页资源,几个个人资料图片,Metro应用程序的图像资源等。


如果 FGET 不适合你,尝试使用 ifindicat 侦探套件 。 您可以找到MFT条目编号 swapfile.sys 运用 ifind 如下:
ifind -n /swapfile.sys \\.\%systemdrive%

获得inode编号后,可以使用检索文件 icat 如下:

icat \\.\%systemdrive% INODE_NUMBER > OUTPUT_PATH

例如:

C:\>ifind -n /swapfile.sys \\.\%systemdrive%
1988

C:\>icat \\.\%systemdrive% 1988 > %systemdrive%\swapfile.dmp

注意: 您需要从提升的命令提示符运行这两个命令(即运行 cmd 作为管理员)


当我尝试运行命令时,该工具崩溃了
magicandre1981

@ magicandre1981您必须以管理员身份运行它。我忘了提到那个
Vinayak

我已经这样做了。
magicandre1981

@ magicandre1981你在运行什么版本的Windows?此外,如果FGET不适合您,还有其他方法可以从正在运行的系统中检索交换文件。检查我的答案中的第一个链接是否有其他选择。
Vinayak

我使用原始的Windows 8(64位)。我得到c0000417(STATUS_INVALID_CRUNTIME_PARAMETER)作为错误代码
magicandre1981
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.