何时使用\\。\ c:以及何时使用c:?

时间:2011-05-01 04:01:44

标签: windows symlink

如果为device1创建的符号链接是\\??\device(内核),访问它时,应该是\\.\device(用户空间),为什么?

C:的符号应为\\.\c:,为什么\\.可以省略?

1 个答案:

答案 0 :(得分:4)

Windows支持两种形式的文件名。有些文件的名称遵循Windows命名约定(:\)和不符合Windows命名约定(\ device \ harddisk0 \ partition5 ...)的文件。 “\\。\”前缀适用于不符合Windows命名约定的文件。

内部Windows支持对象命名空间,其名称源自同一根对象。 Win32 API将在Windows命名约定和内部命名约定之间进行转换。

但是,如果您需要访问名称不符合内部命名约定的文件,则可以使用“\\。\”前缀来绕过名称转换逻辑。

请注意,驱动器号符合Windows命名约定(它们在驱动器号后没有\),因此您需要使用\\。\ form打开驱动器。

有一堆脚手架可以使这一切工作,你可以使用WinObj工具看到它的大部分内容。特别注意Global ?? \ namespace - 注意Global ?? \ C:符号链接,它映射到C盘。