delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/1998/11/05/09:18:36

From: rdparker AT butlermfg DOT org (Parker, Ron)
Subject: RE: [rdparker AT butlermfg DOT org: RE: B20 patch: UNC device path handl
ing]
5 Nov 1998 09:18:36 -0800 :
Message-ID: <199811051641.IAA24545.cygnus.cygwin32.developers@cygnus.com>
Mime-Version: 1.0
To: Corinna Vinschen <corinna DOT vinschen AT cityweb DOT de>,
Christopher Faylor
<cgf AT cygnus DOT com>,
"Parker, Ron" <rdparker AT butlermfg DOT org>, cygwin32-developers AT cygnus DOT com

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------ =_NextPart_000_01BE08DC.2288C5AE
Content-Type: text/plain

My apologies, I forgot to state that my "patch" was just a hand
modification of Corinna's. It was intended to give the general idea and
was incorrect.  Corinna's interpretation of my intentions is accurate.

The remainder of this message is in response to Corinna's question.

On NT, \\.\ and \\?\ are equivalent.  They may be used to access devices
which have symbolic links in the WIN32 subsystem portion of the NT
Object Manager(OM) name space.  These shortcuts include the devices
listed by Corinna as well as many other devices.  Additionally, these
forms bypass interpretation by the WIN32 subsystem and may be used to
create files with "reserved" names like AUX, NUL, etc.

About the \\.\UNC\ syntax, if you examine the symbolic links mentioned
above, you will see that UNC is a symbolic link to \Device\Mup.  MUP is
an acronym of "Multiple Universal Naming Convention Provider".  This
device plays a part in decoding the UNC path.

In the NT WIN32 subsystem \\machine\share\file is translated to
\\.\UNC\machine\share\file.  This is then compared against the WIN32
part of the OM name space.  "UNC" is then recognized as a symbolic link
to \Device\Mup.  Then "machine\share\file" is passed on to the MUP
device.  This device passes it on to the appropriate redirector, which
interprets it as referring to a specific file on a specific share of a
specific machine.

Also X:\file is translated to \\.\X:\file as Corinna mentioned.  When
this is looked up by the OM it is found that \\.\X: is a symbolic link
to \Device\LanmanRedirector\X:\server\share or something similar.  The
path is then modified to X:\server\share\file and is passed on to the
specified redirector where it is finally resolved.

I hope this helps.

-----Original Message-----
From: Corinna Vinschen [mailto:corinna DOT vinschen AT cityweb DOT de]
Sent: Wednesday, November 04, 1998 8:02 PM
To: Christopher Faylor; Parker, Ron; cygwin32-developers AT cygnus DOT com
Subject: Re: [rdparker AT butlermfg DOT org: RE: B20 patch: UNC device path
handling]


Hello Chris, hello Ron,

sorry for the fantastic line wrapping :-( 

Christopher Faylor wrote:
> 
> Corinna, do you agree with this change?
> 
> cgf
> 
> ----- Forwarded message from "Parker, Ron" <rdparker AT butlermfg DOT org> 
> [...]
> +         if (pathbuf[mount[i].pathlen] != '/' &&
> +               strncmp (mount[i].device, "\\\\.\\", 4) == 0 &&
> +               strchr(mount[i].device[mount[i].devicelen-1] + 4,
'\\'))
> [...]

The above patch is incorrect, the strchr crashes:
mount[i].device[foo]	is last char in ...device
.... + 4			is the same char + 4 (e.g. 'E' instead of 'A')
--> 1st parameter to strchr is illegal ptr value.

I think, the following is ment:

+        if (pathbuf[mount[i].pathlen] != '/' &&
+            !(strncmp (mount[i].device, "\\\\.\\", 4) == 0 &&
+              strchr (mount[i].device + 4, '\\') == NULL))

Checks, if the device path has an additional `\' in it.

Another theme is: Do such UNC paths exist???
As I know, only the following device paths exist:
	\\.\X:
	\\.\physicaldriveX
	\\.\tapeX
	\\.\mailslot\foo\bar...
	\\.\pipe\pipename

Ordinary UNC paths are never beginning with \\.\, but with \\foo\...
with the exception of wide character syntax in WinNT. Then, paths are
beginning with \\?\X:\ on standard paths with drive letter and \\?\UNC\ 
on UNC paths.

If the above presentation is correct, my original patch is also correct.
If I'm wrong, I would appreciate, if somebody could explain the meaning
of \\.\UNC\

Regards,
Corinna

------ =_NextPart_000_01BE08DC.2288C5AE
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64

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
AwD9P1IDAAAeAEIQAQAAAB8AAAA8MzY0MTA3MjAuMUREOUVCRTlAY2l0eXdlYi5kZT4AAAMA3j+v
bwAACwAHgAggBgAAAAAAwAAAAAAAAEYAAAAAA4UAAAAAAAADAAiACCAGAAAAAADAAAAAAAAARgAA
AAAQhQAAAAAAAAMAAYAIIAYAAAAAAMAAAAAAAABGAAAAAFKFAADwEwAAHgACgAggBgAAAAAAwAAA
AAAAAEYAAAAAVIUAAAEAAAAEAAAAOC41AAMACYAIIAYAAAAAAMAAAAAAAABGAAAAAAGFAAAAAAAA
CwAKgAggBgAAAAAAwAAAAAAAAEYAAAAADoUAAAAAAAADAAuACCAGAAAAAADAAAAAAAAARgAAAAAR
hQAAAAAAAAMADIAIIAYAAAAAAMAAAAAAAABGAAAAABiFAAAAAAAAHgADgAggBgAAAAAAwAAAAAAA
AEYAAAAANoUAAAEAAAABAAAAAAAAAB4ABIAIIAYAAAAAAMAAAAAAAABGAAAAADeFAAABAAAAAQAA
AAAAAAAeAAWACCAGAAAAAADAAAAAAAAARgAAAAA4hQAAAQAAAAEAAAAAAAAACwAugAsgBgAAAAAA
wAAAAAAAAEYAAAAAAIgAAAAAAAALAC+ACyAGAAAAAADAAAAAAAAARgAAAAAFiAAAAAAAAAsAc4AI
IAYAAAAAAMAAAAAAAABGAAAAAAaFAAAAAAAAAwAmAAAAAAADADYAAAAAAB4AMUABAAAAEQAAAFJE
UEFSS0VSRDA2RkM0MDAAAAAAAwAaQAAAAAAeADBAAQAAABEAAABSRFBBUktFUkQwNkZDNDAwAAAA
AAMAGUAAAAAAAwCAEP////8CAfk/AQAAAHQAAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAGAAAA
L089QlVUTEVSIE1BTlVGQUNUVVJJTkcgQ09NUEFOWS9PVT1CVUlMRElOR1MvQ049UkVDSVBJRU5U
Uy9DTj1UT1dFUi9DTj1SRFBBUktFUkQwNkZDNDAwAB4A+D8BAAAADAAAAFBhcmtlciwgUm9uAB4A
OEABAAAAEQAAAFJEUEFSS0VSRDA2RkM0MDAAAAAAAgH7PwEAAAB0AAAAAAAAANynQMjAQhAatLkI
ACsv4YIBAAAABgAAAC9PPUJVVExFUiBNQU5VRkFDVFVSSU5HIENPTVBBTlkvT1U9QlVJTERJTkdT
L0NOPVJFQ0lQSUVOVFMvQ049VE9XRVIvQ049UkRQQVJLRVJEMDZGQzQwMAAeAPo/AQAAAAwAAABQ
YXJrZXIsIFJvbgAeADlAAQAAABEAAABSRFBBUktFUkQwNkZDNDAwAAAAAEAABzDAh3i71Ai+AUAA
CDCuxYgi3Ai+AR4APQABAAAABQAAAFJFOiAAAAAAHgAdDgEAAABCAAAAW3JkcGFya2VyQGJ1dGxl
cm1mZy5vcmc6IFJFOiBCMjAgcGF0Y2g6IFVOQyBkZXZpY2UgcGF0aCBoYW5kbGluZ10AAAALACkA
AAAAAAsAIwAAAAAAAwAGEGRBLY0DAAcQNQoAAAMAEBAAAAAAAwAREAAAAAAeAAgQAQAAAGUAAABN
WUFQT0xPR0lFUyxJRk9SR09UVE9TVEFURVRIQVRNWSJQQVRDSCJXQVNKVVNUQUhBTkRNT0RJRklD
QVRJT05PRkNPUklOTkFTSVRXQVNJTlRFTkRFRFRPR0lWRVRIRUdFTkVSAAAAAE9R

------ =_NextPart_000_01BE08DC.2288C5AE--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019