ntdll.dll: mark dirlink as REPARSE_POINT (v2)

Detlef Riekenberg wine.dev at web.de
Fri Jun 3 07:14:53 CDT 2005


Am Mittwoch, den 01.06.2005, 21:52 +0200 schrieb Francois Gouget:

> > Some Informations about a REPARSE_POINT:
> >

> How does Find{First,Next}File handle REPARSE_POINTs? 

Simple as a Directory with the additional Bit for
"FILE_ATTRIBUTE_REPARSE_POINT" set (0x0400).

The Patch is already in the CVS-Tree, so wine does the same.

But beware. The runtime-libraries of some C-Compiler does not handle
this bit in there implementation.

Example:
----- cut -----
While testing my Code with OpenWatcom 1.2b I have some Problems with
the 
"attrib" - Field of "_finddata_t" for _findfirst/_findnext:

Link's (0x0400) are not detected, because with OW1.2, the "attrib" - 
Field has always "0" in the highest 8 Bit's.

Full 16-Bit attrib with the same Source and the following compiler's:
-DigitalMars 8.33 / 8.37
-BCC 5.5.1
-MinGW 3.1 (gcc 3.2.3)
-Microsoft C/C++ 12.00 Authoring Edition

I don't have a different Watcom/Open Watcom version.

Using "C"-Source with wcl386, W2K sp3 and NTFS.

----- cut -----
That was my Mail in "news:openwatcom.users.c_cpp" in Nov/2003.

I switched to _WIN32_FIND_DATA after that.
Everything was ANSI and i need to change my source to use UNICODE.

> Any chance we could 
> use them to enable ShowSymdirLink without causing applications to go 
> into infinite loops?
> If yes that would be very cool.

The Explorer (w2k) does not copy the Link, it creates a Directory with
the Name of the Link an copy the complete Contents of the Link-Target.
Not very cool for the User.

We need some testcases to verify this behaviour on newer
Windows-Versions before we can implement Link-Creation in Wine.
(The Application-Part for the Creation of REPARSE_POINTs is in the
Sources, i mentioned before).

-- 
By By ...
      ... Detlef




More information about the wine-devel mailing list