RFC: Junction Point/NT Symlink Support
Erich E. Hoover
erich.e.hoover at gmail.com
Thu Mar 28 15:22:12 CDT 2019
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?
>...
> I see. So I guess CreateSymbolicLink would call CreateFile(linkname,
> CREATE_NEW) and then call DeviceIoControl(FSCTL_SET_REPARSE_POINT) with
> that handle.
That's correct. So, by the time CreateSymbolicLink returns the file
is swapped with the symlink and the temporary directory is removed.
Best,
Erich
More information about the wine-devel
mailing list