在内核模式下,\SytemRoot和\??\C:\Windows是否产生相同的结果?
例如,如果我想访问Windows目录中的一个名为Windows的文件,那么在这两个选项之间使用什么是正确的?
发布于 2020-09-01 12:59:32
如果您想要显式地访问目录C:\Windows中的文件C:\Windows,请按名称使用\??\C:\Windows\test.txt。但是,这很可能不是您想要的(除非您从其他地方获得了包括C:\Windows在内的完整路径,并且只是预置了\??\),因为如果在其他地方安装了\??\D:\WINNT (或者在恢复环境中安装了\??\X:\Windows ),它就会失败。
因此,如果您只想访问当前安装所在目录中的文件test.txt,即通过该目录作为系统根目录的角色(无论其绝对路径如何),则可以使用\SystemRoot\test.txt。这通常是您想要的,因为\SystemRoot是一个符号链接,它总是指向正确的Windows安装目录。如果分区的驱动器号(即符号链接\??\C:)在运行时意外地未被分配或更改(或开始时还没有分配),这甚至是有效的,因为它没有通过\??中的符号链接(如\??\C:\Windows ),而是直接指向像\Device\Harddisk0\Partition1\Windows这样的设备路径。
https://stackoverflow.com/questions/63686977
复制相似问题