|IO_REPARSE_TAG_MOUNTPOINT| (Junctions) not working for remote filesystems in Cygwin ?
Roland Mainz
roland.mainz@nrubsig.org
Tue Feb 4 22:37:52 GMT 2025
Hi!
----
I am tinkering with Win32 reparse point (Junction) support and tried
to implement |IO_REPARSE_TAG_MOUNTPOINT| (and other reparse tags) in
our filesystems (mostly for automounter+NFSv4.1 referral support), but
it seems that Cygwin does not support |IO_REPARSE_TAG_MOUNTPOINT| for
"remote" filesystems:
---- snip ----
2576 if ((rp->SymbolicLinkReparseBuffer.Flags &
SYMLINK_FLAG_RELATIVE) ||
2577 check_reparse_point_string (psymbuf))
2578 return PATH_SYMLINK | PATH_REP;
2579 }
2580 else if (!remote && rp->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT)
2581 {
2582 /* Don't handle junctions on remote filesystems as
symlinks. This type
2583 of reparse point is handled transparently by the OS so that the
2584 target of the junction is the remote directory it is
supposed to
2585 point to. If we handle it as symlink, it will be mistreated as
2586 pointing to a dir on the local system. */
2587 RtlInitCountedUnicodeString (psymbuf,
---- snip ----
The matching code in our filesystems seems to work in PowerShell and
cmd.exe - so what context am I missing ?
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz@nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)
More information about the Cygwin
mailing list