2011-11-05 55 views
0

我想弄清楚我的电脑上出现BSOD问题,我需要了解“??”是指注册表值(例如\ ?? \ C:\ Windows \ system32 \ Drivers \ vmm.sys)?我把问题缩小到只有几个文件,但我无法理解这个“??”符号。任何帮助表示赞赏!什么?意味着在注册表值?

回答

1

这是内核的命名风格。 \??(几乎)是\DosDevices的同义词,这是默认情况下所有Win32对象/符号链接所在的位置。

基本上,kernel32.dll是“Win32子系统”,它实现(或者说包装)很多Windows的功能。它使用的命名方案是您在任何地方都可以看到的命名方案,如C:\Windows

但这就是不是内核如何看待系统!就像Unix,它有一个根据/的对象层次结构,Windows也有一个层次结构,根植于\,您可以通过调用ntdll.dll(它将绕过kernel32.dll)的函数访问其API。所以你真正在Win32中看到的是子集的实际内容 - 即名称C:实际上映射到内核中的\??\C:

下载WinObj看看我的意思。 (见GLOBAL??键。)

有用的读数:

The kernel object namespace and Win32, part 1
The kernel object namespace and Win32, part 2
The kernel object namespace and Win32, part 3

+0

惊人的快回答!谢谢!我会通读这些链接。这应该是非常有用的!我在我们的实时内核和ntoskrnl.exe之间有冲突,当我启用该服务时,出现BSOD。这是我公司生产的软件,但这是x64 O/S的新版本。 – user1030679