我想在我的电脑上找出一个BSOD问题,我需要了解“??”表示注册表值(例如 \ ?? \ C:\ Windows \ system32 \ Drivers \ vmm.sys )?我把问题缩小到只有几个文件,但我无法理解这个“ ?? ”符号。任何帮助表示赞赏!
答案 0 :(得分:1)
这是内核的命名风格。 \??
(几乎)是\DosDevices
的同义词,默认情况下,所有Win32对象/符号链接都位于此处。
基本上,kernel32.dll
是“Win32子系统”,它实现(或者更确切地说,包装)Windows的许多功能。它使用的命名方案是您到处都可以看到的方案,例如C:\Windows
。
但是不内核如何看待系统!与Unix一样,它的对象层次结构为/
,Windows也有一个以\
为根的层次结构,您可以通过调用ntdll.dll
中的函数来访问其API(这将绕过{ {1}})。所以你在Win32中真正看到的是实际存在的子集 - 即名称kernel32.dll
实际映射到内核中的C:
。
下载WinObj,看看我的意思。 (参见\??\C:
键。)
有用的读物:
The kernel object namespace and Win32, part 1
The kernel object namespace and Win32, part 2
The kernel object namespace and Win32, part 3