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: List-Subscribe: List-Archive: List-Post: List-Help: , 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 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> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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 . 04/08/2014 10:35 PM .. 04/08/2014 10:35 PM foo [C:\Users] 04/08/2014 10:33 PM 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