Utilize reparse points for symlinks
Andy Koppe
andy.koppe@gmail.com
Fri Sep 24 13:07:00 GMT 2010
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
More information about the Cygwin-developers
mailing list