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 they start with just "\share" 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 ??\shadow ??\PIPE\lsarpc ??\PIPE\srvsvc ??\MountPointManager ??\Volume{d73e9554-faa2-11d9-b4c7-806d6172696f}\ ??\IDE#CdRomMATSHITA_DVD-ROM_SR-8177________________NB21____#5&29356cf8&0&0.0.0#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}\ :{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}:$DATA :SummaryInformation:$DATA :Docf_SebiesnrMkudrfcoIaamtykdDa:$DATA
F Lace wrote:
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.
http://www.winehq.com/site/docs/wine-devel/x3016 is your friend
To list my confusion, I have a few questions reading the source:
- Do UNC paths really start with "UNC"? I havent seen any, I thought
they start with just "\share"
the Win32 form is \share... the NTDLL form starts with UNC..
- Does "\?" denote a UNC path that refers to the local machine?
no, it's a long path (len > MAX_PATH) in Win32 form
- Wine's RtlDetermineDosPathNameType_U says //./foo is a device path,
what does this translate to this path is given to NtCreateFile?
there are a few hardcoded names here, + winecfg:ed drives + VxDs
- 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
\Device, nor Volume are handled
- How do you determine from the NT path if it is a path to a device?
check wine_nt_to_unix_path_name A+