delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:message-id:date:from:mime-version:to:subject | |
:references:in-reply-to:content-type:content-transfer-encoding; | |
q=dns; s=default; b=pseZ0jdo+NTXkHPPxN5j0iKtB7zTuhcPHvNaUTMiwM1 | |
0K4uxW1IXnFWlFERnI4dG3pqkH/lAfd7xW7O3w1PoB4E/4G6CWd1oOFvgh1dbzuD | |
wTD1ysEvEfQ30OeKlgf7tqUcWjbcQQDkNtr8zk64lTyoMZ8iVBNVDwnTmhE20gVg | |
= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:message-id:date:from:mime-version:to:subject | |
:references:in-reply-to:content-type:content-transfer-encoding; | |
s=default; bh=6yMPSLwmD9KpARlCO/fmt6AKSPI=; b=UuTqYcC8HZLdVqO3i | |
KEHruCW0grHN+FPOr/5OttUbJKERMH3yKUCpPVC3Nq8XOC0MgtTsYMFr/MClvLrA | |
unCoSJTyT7CL33PLyno9zvb98Me4F8+f5vpdvoDhbzeQVe0T2r3bbmR3wqwozfXc | |
OyDskOthzgaEDKYOIaiJJSDBJ4= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Authentication-Results: | sourceware.org; auth=none |
X-Virus-Found: | No |
X-Spam-SWARE-Status: | No, score=-1.4 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 |
X-HELO: | Ishtar.tlinx.org |
Message-ID: | <53453800.9010603@tlinx.org> |
Date: | Wed, 09 Apr 2014 05:07:28 -0700 |
From: | Linda Walsh <cygwin AT tlinx DOT org> |
User-Agent: | Thunderbird |
MIME-Version: | 1.0 |
To: | cygwin AT cygwin DOT com |
Subject: | Re: Request for Junctions be treated consistently |
References: | <5336C0DF DOT 5080102 AT tlinx DOT org> <5336C23B DOT 2070309 AT tlinx DOT org> <20140331102745 DOT GD23383 AT calimero DOT vinschen DOT de> <533AEBD6 DOT 3040209 AT tlinx DOT org> <20140402084026 DOT GM2508 AT calimero DOT vinschen DOT de> <533FE56D DOT 5010809 AT tlinx DOT org> <20140407092342 DOT GF2061 AT calimero DOT vinschen DOT de> <1675705369 DOT 20140407220427 AT yandex DOT ru> <20140408083955 DOT GA28755 AT calimero DOT vinschen DOT de> |
In-Reply-To: | <20140408083955.GA28755@calimero.vinschen.de> |
X-IsSubscribed: | yes |
Forgive me if this posts a 2nd time, but I haven't seen it come back after 6+ hours, so not sure where it went. Corinna Vinschen wrote: > > No, it's not. There's a major difference between mount points and > symlinks, which is, mount points are handled inside the kernel, while > symlinks are filesystem objects. Reparse points are very certainly > filesystem objects. And bind mounts in Cygwin are handled in the > "kernel" as well. We can't add reparse points to the mount table > on the fly. --- Windows Internals V5, p965 A reparse point is a block of up to 16kb of application defined reparse data and a 32-bit repase tag that are stored in the $REPARSE_POINT attribute of a file or directory. Whenever an application creates or deletes a reparse point, NTFS updates the \$Extend\$Reparse metadata file, in which NTFS stores\ entries that identify the file record numbers of files and directories that contain reparse points. Storing the records in a central location enables NTFS to provide interfaces for applications to enumerate all a volumes reparse points, **such** as **mount* *points**. The $Extend$Reparse file uses the general indexing facility of NTFS by collating the file's entries (in an index named $R) by reparse point tags. ----- On p669, mounts are covered -- the bottom paragraph says mount points are reparse points that store a volume name as the reparse data. Theoretically, there should be a cental resource that would enable you to know all the reparse points that are associated with mountpoints that wouldn't have to be added "on the fly", but could be added to /etc/fstab on cygwin-initialization. To further the case for linkd being a type of mount: I created 2 links to C:\Users -- one with linkd, the other with mklink /d: C:\tmp\test>dir Volume in drive C is System Disk Volume Serial Number is E889-68E4 Directory of C:\tmp\test 04/08/2014 10:35 PM <DIR> . 04/08/2014 10:35 PM <DIR> .. 04/08/2014 10:35 PM <SYMLINKD> foo [C:\Users] 04/08/2014 10:33 PM <JUNCTION> Users [C:\Users] ---------- Using the fsutil reparsepoint query we can look at the two objects: >fsutil reparsepoint query foo Reparse Tag Value : 0xa000000c Tag value: Microsoft Tag value: Name Surrogate Tag value: Symbolic Link Reparse Data Length: 0x00000034 Reparse Data: 0000: 10 00 18 00 00 00 10 00 00 00 00 00 43 00 3a 00 ............C.:. 0010: 5c 00 55 00 73 00 65 00 72 00 73 00 5c 00 3f 00 \.U.s.e.r.s.\.?. 0020: 3f 00 5c 00 43 00 3a 00 5c 00 55 00 73 00 65 00 ?.\.C.:.\.U.s.e. 0030: 72 00 73 00 r.s. ---- Foo is a Symbolic Link. --- >fsutil reparsepoint query Users Reparse Tag Value : 0xa0000003 Tag value: Microsoft Tag value: Name Surrogate Tag value: Mount Point Substitue Name offset: 0 Substitue Name length: 24 Print Name offset: 26 Print Name Length: 16 Substitute Name: \??\C:\Users Print Name: C:\Users Reparse Data Length: 0x00000034 Reparse Data: 0000: 00 00 18 00 1a 00 10 00 5c 00 3f 00 3f 00 5c 00 ........\.?.?.\. 0010: 43 00 3a 00 5c 00 55 00 73 00 65 00 72 00 73 00 C.:.\.U.s.e.r.s. 0020: 00 00 43 00 3a 00 5c 00 55 00 73 00 65 00 72 00 ..C.:.\.U.s.e.r. 0030: 73 00 00 00 s... ---- But the one created with 'linkd' is called a Mount Point. Does that help clarify the differences between linkd and mountvol vs. reparse points created by 'mklink'? -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |