ntdll: Add initial support for DOS file attributes (attempt 3)

Merged Joel Holdsworth requested to merge jhol/wine:ntdll-dos-attributes-7 into master

This patch set is based upon patches from Wine Staging by Erich E. Hoover (@ehoover), and implements support for the SYSTEM, HIDDEN and READONLY DOS file attributes. These can implemented in various ways depending upon the capabilities of the operating system and the file system. However, this initial patch-set focusses on just one method: Samba-formatted Extended File Attributes.

Modern filesystems generally support Extended File Attributes - auxiliary blobs of binary data that can be attached to a file. Samba uses the user.DOSATTRIB attribute to store DOS attribute information in the form of a hexadecimal value, and this patch-set implements a compatible mechanism.

Support for additional storage methods to increase operating system and filesystem compatibility is planned for later patch submissions.

This effort is part of a larger project I have been working on to get Msys2 and Cygwin working properly on Wine. The absence of DOS file attribute support prevents one of the modes that Cygwin and Msys2 can use to emulate symbolic links from working correctly, which causes the Cygwin installer to fail: https://bugs.winehq.org/show_bug.cgi?id=15679

See Also

Edited by Joel Holdsworth

Merge request reports