Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SystemRoot和C:\Windows之间的差异_C_Windows_Driver_Kernel Mode - Fatal编程技术网

SystemRoot和C:\Windows之间的差异

SystemRoot和C:\Windows之间的差异,c,windows,driver,kernel-mode,C,Windows,Driver,Kernel Mode,在内核模式下,\SytemRoot和\??\C:\Windows是否产生相同的结果 例如,如果我想访问Windows目录下名为test.txt的文件,在这两个选项之间应该使用什么?如果你想访问C:\Windows目录下名为test.txt的文件,你可以使用\??\C:\Windows\test.txt。但是,这很可能不是您想要的(除非您从其他地方获得了完整路径,包括C:\Windows,并且只是在\??\之前添加),因为如果Windows安装在其他地方,例如\??\D:\WINNT(或者在恢复环

在内核模式下,
\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:
)在运行时意外地未分配或更改(或尚未开始分配),此功能甚至可以工作因为它不像
\??
那样通过
\??\C:\Windows
中的符号链接,而是直接指向设备路径,如
\device\Harddisk0\Partition1\Windows

来扩展当前的详细信息,很长一段时间以来,“\device\Harddisk0\Partition1”(NT 4.0中的设备名称)是指向枚举卷设备(如“\device\HarddiskVolume2”)的符号链接。此外,在Windows 10中,“\SystemRoot”是指向“\Device\BootDevice\Windows”的符号链接(如果系统安装在“\Windows”中),“\Device\BootDevice”是指向启动卷设备(通常为驱动器“C:”)的符号链接,例如“\Device\HarddiskVolume2”。