This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
Re: Utilize reparse points for symlinks
- From: Andy Koppe <andy dot koppe at gmail dot com>
- To: cygwin-developers at cygwin dot com
- Date: Fri, 24 Sep 2010 14:03:07 +0100
- Subject: Re: Utilize reparse points for symlinks
- References: <20100923152640.GI13235@calimero.vinschen.de>
On 23 September 2010 16:26, Corinna Vinschen wrote:
> I experimented a bit further with reparse points, since it occured to me
> that they are still an excellent method to implement symlinks on NTFS.
>
> What we can't do is to use the offical symlink reparse point introduced
> with Windows Vista for the well-known reasons.
>
> However, what we *could* do is to go the official way and request a
> Cygwin reparse point tag at Microsoft(*). ÂFor testing I implemented
> this method locally, using the offical REPARSE_GUID_DATA_BUFFER reserved
> for 3PPs, a reparse tag 0x20007654, and a GUID I generated by using the
> uuidgen tool from the Microsoft SDK. ÂWorks fine, even as non-admin user,
> unlike the native Vista symlinks.
>
> Why am I pursuing this at all?
>
> The reason is that a reparse point can be easily (read: quickly)
> recognized by the DOS reparse attribute. ÂThe reparse point content can
> be read without having to use ReadFile, so the access time doesn't
> change when reading it. ÂThe reparse tag can even be recognized already
> in readdir for free(**).
Sounds like a good idea. I assume these still wouldn't work for
non-Cygwin programs though? Could they still support them by reading
them themselves (using DeviceIoControl with FSCTL_GET_REPARSE_POINT)?
Andy