[PATCH 0/1] MR3248: include: Add REPARSE_(GUID_)DATA_BUFFER and related constants.
Based on a patch by Erich E. Hoover. Wine Staging has been carrying this code around since 2014. It should be fine to upstream it even if the rest of the [junction point patches](https://gitlab.winehq.org/wine/wine-staging/-/tree/master/patches/ntdll-Junc...) aren't ready yet, and upstreaming will reduce the burden on the Staging maintainers. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3248
From: Alex Henrie <alexhenrie24(a)gmail.com> Based on a patch by Erich E. Hoover. --- include/ddk/ntifs.h | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h index bd4bd58be26..b793f00bc8e 100644 --- a/include/ddk/ntifs.h +++ b/include/ddk/ntifs.h @@ -30,6 +30,8 @@ #define PHCM_DISGUISE_FULL_PLACEHOLDERS ((char)3) #define PHCM_MAX ((char)3) +#define SYMLINK_FLAG_RELATIVE 0x00000001 + typedef struct _EX_PUSH_LOCK EX_PUSH_LOCK, *PEX_PUSH_LOCK; typedef enum _FS_FILTER_SECTION_SYNC_TYPE @@ -138,6 +140,58 @@ typedef struct _FS_FILTER_CALLBACKS PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter; } FS_FILTER_CALLBACKS, *PFS_FILTER_CALLBACKS; +typedef struct _REPARSE_DATA_BUFFER +{ + ULONG ReparseTag; + USHORT ReparseDataLength; + USHORT Reserved; + + union + { + struct + { + USHORT SubstituteNameOffset; + USHORT SubstituteNameLength; + USHORT PrintNameOffset; + USHORT PrintNameLength; + ULONG Flags; + WCHAR PathBuffer[1]; + } SymbolicLinkReparseBuffer; + + struct + { + USHORT SubstituteNameOffset; + USHORT SubstituteNameLength; + USHORT PrintNameOffset; + USHORT PrintNameLength; + WCHAR PathBuffer[1]; + } MountPointReparseBuffer; + + struct + { + UCHAR DataBuffer[1]; + } GenericReparseBuffer; + + } DUMMYUNIONNAME; + +} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; + +typedef struct _REPARSE_GUID_DATA_BUFFER +{ + DWORD ReparseTag; + WORD ReparseDataLength; + WORD Reserved; + GUID ReparseGuid; + + struct + { + BYTE DataBuffer[1]; + } GenericReparseBuffer; + +} REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER; + +#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer) + BOOLEAN WINAPI FsRtlIsNameInExpression(PUNICODE_STRING, PUNICODE_STRING, BOOLEAN, PWCH); DEVICE_OBJECT * WINAPI IoGetAttachedDevice(DEVICE_OBJECT*); PEPROCESS WINAPI IoGetRequestorProcess(IRP*); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3248
This merge request was approved by Erich Hoover. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3248
Thanks Alex, I was almost done getting things cleaned up for another attempt before life got in the way. Looking at August for doing final touch-ups and seeing if I can get at least some of these patches in. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3248#note_38168
participants (3)
-
Alex Henrie -
Alex Henrie (@alexhenrie) -
Erich Hoover (@ehoover)