我正在维护一个带有用户空间和内核组件的旧版Windows应用程序。用户空间通过注册表项将一些文件路径传递给设备驱动程序。
目前,代码查找文件的完整路径,然后在将其写入注册表之前为其预置??
,因此路径最终类似于 ??C:foo.bar
.驱动程序将此路径传递给 InitializeObjectAttributes()
和 ZwCreateFile()
,这将成功打开文件(或根据需要创建文件)。
我熟悉\.
前缀作为DosDevices
的别名,但不是??
,而且这不是那种可以被谷歌搜索的东西。有谁知道这意味着什么?
它是在引导过程中创建的命名空间子目录。其中包含指向 Win32 API 可访问的资源的链接。在系统完全启动之前的引导期间,如果引用了该路径,则如果没有 \??\ 到位。