什么样的文件路径以“\\.\”开头?

什么样的文件路径以“\\.\”开头?

我使用 Avast Web Shield,它使用环境变量拦截来自浏览器的 TLS 流量:

SSLKEYLOGFILE \\.\aswMonFltProxy\FFFFDE812B3DD840

虽然我其实并不介意它这样做,我也理解它这样做的原因,但我还是很好奇这个“路径”实际上指向什么。我的第一个想法是,这要么是某种 Netbios 地址,要么是套接字连接,但我真的不知道。

有谁知道这种“路径”是什么以及它是否实际上可以映射到磁盘上或内存中的物理文件?

答案1

前缀\\.用于访问“设备命名空间”,其工作方式有点像 Linux 的 /dev 甚至 /sys。(它对应于\GLOBAL??NT 对象命名空间中的子文件夹,因此您可以使用 WinObjEx 浏览其内容。)

据我所知,Windows 会逐步解析对象路径,提供与挂载点类似的效果,因此\\.\aswMonFltProxy很可能是 Avast 的过滤驱动程序创建的设备对象,其余部分由该驱动程序本身处理 - 最有可能返回“管道”对象或类似对象。Firefox 可以将数据写入管道的一端,然后驱动程序接收。

(Windows 也有实际的命名管道,它们位于前缀下\\.\Pipe并以非常类似的方式工作 - 例如,当访问时\\.\Pipe\whatever,第一部分被解析为命名管道设备驱动程序,其余部分被解析为实际的 namedpipefs 对象。)

一般而言,这些对象都不是物理的 – 它们仅存在于内核内存中。只有一些对象(例如\\.\C:)对应于物理磁盘并允许返回“真实”文件系统。

相关内容