Module: wine Branch: master Commit: 33b7e4806f44b781cd9b8c9a90ca305c7709368f URL: https://gitlab.winehq.org/wine/wine/-/commit/33b7e4806f44b781cd9b8c9a90ca305...
Author: Alex Henrie alexhenrie24@gmail.com Date: Wed Jul 5 21:52:16 2023 -0600
include: Add REPARSE_(GUID_)DATA_BUFFER and related constants.
Based on a patch by Erich E. Hoover.
---
include/ddk/ntifs.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+)
diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h index bd4bd58be26..cedd54a66fe 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,54 @@ 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*);