# Paths confusion

F Lace flace9 at gmail.com
Sun Oct 2 01:24:14 CDT 2005

Hello Wine Folks,

Thanks to google, I learnt about Wine's existence. I havent tried it
yet, looking through the website, documentation and source code, I am
delighted!

I am browsing through some DLL implementation source one by one, but I
got stuck at the first one itself(kernel32/files) and got confused
with various file path formats.

Following are some of the path names I could collect reading through
different documentation and I also got a few from my friends who are
windows developers.

To list my confusion, I have a few questions reading the source:
1. Do UNC paths really start with "UNC\"? I havent seen any, I thought
2. Does "\\?\" denote a UNC path that refers to the local machine?
3. Wine's RtlDetermineDosPathNameType_U says //./foo is a device path,
what does this translate to this path is given to NtCreateFile?
4. Wine's NtCreateFile seems to specially handle only PIPEs and
MAILSLOTs. How does it handle the other types that I listed below?
(\Device\..., \??\Volume, :{...}, etc
5. How do you determine from the NT path if it is a path to a device?

Thanks!
/flace

C:\Path\To\SomeFile.ext
Path\To\A\Relative\File.txt
C:\Windows\Absolute\Path.txt
\??\C:\Nt\Path.ext
\\?\C:\Path\to\a\really\long\file\name.txt
\\share\path\to\a\network\shared\file.ext
\\.\  <-- what is this for?
UNC

\Device\KsecDD
:{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}:$DATA :SummaryInformation:$DATA