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”。