RFC: evolution of file management
Martin-Fuchs at gmx.net
Tue Aug 19 16:31:43 CDT 2003
> the device concept will disappear and be replaced by a "path gate":
> in NT-Win32 name space, point where to convert from a
> NT-path to a Unix-path
> for example, assuming we have created a path-gate from
> \\??\c: to /mnt/windows, the NT-path \\??\c:\foo\bar
> will be transformed into the unix-path /mnt/windows/foo/bar
It would be good to implement this "path gates" as near as possible like the way it is implemented in Windows NT/XP. This mapping is done using the NT object namespace. Object namespace is another virtual tree structure similar to a file system or the registry. It is accessed by functions like NtOpenDirectoryObject(), NtOpenSymbolicLinkObject(), NtQueryDirectoryObject(), NtQuerySymbolicLinkObject(), ... There has been a tool in the internet called "winobj.exe", with which you can examine this internal NT object namespace. However it is not compatible to XP, I don't know, if someone has yet updated it. But I do have a own program which can display it also for XP.
Drive mapping is stored as symbolic links for example at "\GLOBAL??\D:". This links point to the partitions, like e.g. "\Device\HarddiskVolume3". There are also the ArcNames, which you can find in the NT bootloader config file "boot.ini". At "\ArcName\multi(0)disk(0)rdisk(0)" you can find another symbolic link to "\Device\Harddisk0\Partition0".
This examples are from my XP system. System versions before XP used a bit of another mapping schema.
By the way: You can also find the whole registry as a subtree in the NT object namespace at paths like "\REGISTRY\HKEY_LOCAL_MACHINE\.... Would not be bad, if we could implement this also.
martin-fuchs at gmx.net
More information about the wine-devel