2011-11-05 86 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