RFC: Junction Point/NT Symlink Support

Hans Leidekker hans at codeweavers.com
Thu Mar 28 16:16:58 CDT 2019


On Thu, 2019-03-28 at 14:22 -0600, Erich E. Hoover wrote:
> On Thu, Mar 28, 2019 at 2:09 PM Hans Leidekker <hans at codeweavers.com> wrote:
> > On Thu, 2019-03-28 at 13:30 -0600, Erich E. Hoover wrote:
> > > ...
> > > We have to pick something for non-Wine symlinks, unless you want to
> > > always treat them as regular (non-reparse point) files?  Treating
> > > regular symlinks as NT Symlinks seem like the easiest choice, since
> > > they support both file and directory symlinks.
> > 
> > You wouldn't be able to report their type correctly if the target
> > doesn't exist.
> 
> An NT Symlink can either be to a directory or a file, so if we report
> all non-Wine symlinks as NT Symlinks then the type of link is always
> "correct".  But maybe I'm misunderstanding you and you're talking
> about some other form of type reporting?

See the flags parameter to CreateSymbolicLink which controls whether
the link created is a file symlink (0) or a directory symlink
(SYMBOLIC_LINK_FLAG_DIRECTORY). File symlinks behave as files, so you
remove them with DeleteFile for example. Likewise, calling DeleteFile
on a directory symlink should fail. 




More information about the wine-devel mailing list