以\ ?? \开头的Windows内核对象名称是什么意思?

时间:2013-01-23 14:46:47

标签: windows-kernel

我正在维护一个包含用户空间和内核组件的传统Windows应用程序。用户空间通过注册表项将一些文件路径传递给设备驱动程序。

目前,代码找到该文件的完整路径,然后在将其写入注册表之前将\??\添加到该文件中,因此该路径最终会出现\??\C:\foo.bar之类的内容。驱动程序将此路径传递给InitializeObjectAttributes()ZwCreateFile(),这会成功打开文件(或根据需要创建文件)。

我熟悉\\.\前缀作为\DosDevices\的别名,但不熟悉\??\,并且它不是可以用谷歌搜索的东西。有谁知道这意味着什么?

1 个答案:

答案 0 :(得分:2)

它是在引导过程中创建的命名空间子目录。其中包含指向Win32 API可访问资源的链接。在系统完全启动之前的引导期间,如果引用该路径,则在没有\ ?? \就位的情况下可能无法解析。