SystemRoot 和 C:\Windows 的区别
Difference between SystemRoot and C:\Windows
在内核模式下,\SytemRoot
和 \??\C:\Windows
产生相同的结果吗?
例如,如果我想访问Windows
目录下一个名为test.txt
的文件,这两个选项之间应该使用什么?
如果您想显式访问目录 C:\Windows
中的文件 test.txt
,按名称,您可以使用 \??\C:\Windows\test.txt
。但是,这很可能不是您想要的(除非您从其他地方获得了包括 C:\Windows
在内的完整路径,并且只是在前面加上 \??\
),因为如果 Windows 安装在其他地方,它将失败,因为示例 \??\D:\WINNT
(或 \??\X:\Windows
在恢复环境的情况下)。
因此,如果您只想访问当前 Windows 安装所在目录中的文件 test.txt
,即通过 角色 目录作为系统根目录,不管它的绝对路径如何,你都会使用\SystemRoot\test.txt
。这通常是您想要的,因为 \SystemRoot
是一个符号链接,它始终指向正确的 Windows 安装目录。如果分区的驱动器盘符(即符号链接 \??\C:
)在运行时意外取消分配或更改(或尚未开始分配),这甚至有效,因为它没有通过 [=21] 中的符号链接=] 类似于 \??\C:\Windows
但它直接指向设备路径,如 \Device\Harddisk0\Partition1\Windows
.
在内核模式下,\SytemRoot
和 \??\C:\Windows
产生相同的结果吗?
例如,如果我想访问Windows
目录下一个名为test.txt
的文件,这两个选项之间应该使用什么?
如果您想显式访问目录 C:\Windows
中的文件 test.txt
,按名称,您可以使用 \??\C:\Windows\test.txt
。但是,这很可能不是您想要的(除非您从其他地方获得了包括 C:\Windows
在内的完整路径,并且只是在前面加上 \??\
),因为如果 Windows 安装在其他地方,它将失败,因为示例 \??\D:\WINNT
(或 \??\X:\Windows
在恢复环境的情况下)。
因此,如果您只想访问当前 Windows 安装所在目录中的文件 test.txt
,即通过 角色 目录作为系统根目录,不管它的绝对路径如何,你都会使用\SystemRoot\test.txt
。这通常是您想要的,因为 \SystemRoot
是一个符号链接,它始终指向正确的 Windows 安装目录。如果分区的驱动器盘符(即符号链接 \??\C:
)在运行时意外取消分配或更改(或尚未开始分配),这甚至有效,因为它没有通过 [=21] 中的符号链接=] 类似于 \??\C:\Windows
但它直接指向设备路径,如 \Device\Harddisk0\Partition1\Windows
.