This patch set is based upon [patches from Wine Staging](https://github.com/wine-staging/wine-staging/tree/master/patches/n… 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 fule 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
* https://bugs.winehq.org/show_bug.cgi?id=9158
--
v3: ntdll: Implement storing DOS attributes in NtCreateFile.
ntdll: Implement retrieving DOS attributes in NtQueryInformationFile
ntdll: Implement storing DOS attributes in NtSetInformationFile.
ntdll: Implement retrieving DOS attributes in [fd_]get_file_info().
https://gitlab.winehq.org/wine/wine/-/merge_requests/951
Add the ability to disconnect nested node providers, and return element properties for nested nodes.
--
v6: uiautomationcore: Add UIAutomationType_Element property support for nested node providers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/908
Ensure IOSB Information (InternalHigh) is loaded after Status (Internal)
to avoid reading stale value from the Information (InternalHigh) field.
--
v2: kernelbase: Fix reading stale information from IOSB.
https://gitlab.winehq.org/wine/wine/-/merge_requests/881
--
v6: comctl32: Don't pass PROPSHEETPAGE to SetWindowSubclass in PROPSHEET_CreatePage.
comctl32/tests: Test passing PropertySheetPage as HPROPSHEETPAGE.
comctl32/tests: Add more PROPSHEETPAGE tests inside callback.
comctl32/tests: Test passing extra data in PROPSHEETPAGE structure.
comctl32/tests: Test PROPERTYSHEETPAGE passed in WM_INITDIALOG.
https://gitlab.winehq.org/wine/wine/-/merge_requests/932