Это стиль именования kernel .\??
является (почти) синонимом для \DosDevices
, где все объекты Win32 / символические ссылки расположены по умолчанию.
По сути, kernel32.dll
- это "подсистема Win32", которая реализует (илискорее, оборачивает) много функциональности Windows.Используемая схема именования - та, которую вы видите повсюду, например C:\Windows
.
Но это , а не , как ядро видит систему!Как и в Unix, в которой иерархия объектов имеет корни в /
, в Windows также есть иерархия, корни которой - \
, к API-интерфейсам которой вы можете обращаться, вызывая функции в ntdll.dll
(что обойдёт kernel32.dll
).Итак, что вы действительно видите в Win32, это подмножество того, что на самом деле там, а именно, имя C:
фактически отображается в \??\C:
в ядре.
Загрузка WinObj чтобы понять, что я имею в виду.(См. Ключ GLOBAL??
.)
Полезные значения:
Пространство имен объекта ядра и Win32, часть 1
Пространство имен объекта ядра иWin32, часть 2
Пространство имен объекта ядра и Win32, часть 3