Re: NtCreateFile and STATUS_OBJECT_PATH_NOT_FOUND (0x0000003A)
"Craig Edwards" <[email protected]>
| Newsgroups | gmane.linux.ports.xbox.devel |
|---|---|
| Organization | H.A. Enterprises Pty Ltd |
| Message-ID | <[email protected]> |
On Sun, 1 Aug 2004 10:45:20 -0700, Myria <[email protected]> wrote: > That is a Windows NT thing, not Xbox. In Win32, the CreateFile API call > does not directly access the root of the NT namespace - kernel32.dll uses > ObDosDevices and translates to NtCreateFile. However, there is a "back > door" in this mechanism. \\.\ in Win32 means to open any object that is > in > \?? aka \DosDevices. There are many symbolic links there, like LPT1, so > you > can open \\.\LPT1 with CreateFile. The notation \\.\ looks like a UNC > path > with "yourself" as the computer name, but it isn't the same as putting > your > computer's name there. GLOBALROOT is a symbolic link to \, the root of > the > NT namespace. In other words, \??\GLOBALROOT is a symlink to \. This > allows you to open any file object in the NT namespace using CreateFile, > without having to bypass it and directly call NtCreateFile. (This means > that GLOBALROOT is rather useless if you are using NtCreateFile. > GLOBALROOT > does not exist on Xbox.) Again, many thanks for the thorough explanation. Hopefully I have all bases covered now... thanks. -- Craig Edwards ------------------------------------------------------- This SF.Net email is sponsored by OSTG. Have you noticed the changes on Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now, one more big change to announce. We are now OSTG- Open Source Technology Group. Come see the changes on the new OSTG site. www.ostg.com