Windows 注册表中文件系统路径中问号的作用是什么?

x45*_*812 5 windows-registry windows-7

这是关于 64 位 Windows 7 Home Premium(我朋友的计算机)上的注册表。我要设置系统通过设置REG_DWORD值以清除关闭页面文件ClearPageFileAtShutdown中的HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management“1”。

然而,我的问题是关于值ExistingPageFilesPagingFiles此注册表位置中的问号。

问号如下图所示。

注册表值中使用的问号

我想问的问题是:

  1. 这些值中使用的路径是否应该在开头带有问号?
  2. 这些问号有什么作用?

Ben*_*n N 12

双问号路径是NT 对象管理器对象名称。对象管理器是一个将许多不同类型的系统资源(例如设备、内存部分、窗口站、事件)组织成一个树状结构的系统。您可以使用WinObj工具浏览该树。

\??\伪目录中的内容可以在可以看到GLOBAL??的WinObj的部分。还有其他子树,例如Device. 事实上,其中的每一项\??\都是一个符号链接 - 快捷方式或别名 - 到其他地方的对象。\??\C:是(在我的系统上)指向 的链接\Device\HarddiskVolume4,屏幕截图中显示的其余路径是该卷根目录下的路径。每个驱动器号在那里显示为指向它所在卷的符号链接。您可能会发现熟悉的其他类型的设备,例如CONNUL

注意:在大多数应用程序中,您不能使用这些类型的路径来访问文件或目录。只有某些低级系统组件被设计为与对象管理器路径一起使用。

这解释了您的屏幕截图的ExistingPageFiles, 但不是PagingFiles. PagingFiles包含您的虚拟内存设置以及以正常路径表示的分页文件路径。如果您的系统设置为自行管理所有虚拟内存设置,则该条目不会指定驱动器号(仅文件名和路径),因此?它只是页面文件最终位于的任何驱动器的占位符。

总之,是的,这些问号应该在那里。

进一步阅读:Inside NT's Object Manager , Object Manager (Windows)

视频:微软第 9 频道的NT 对象管理器