From: YongHao Hu Subject: [PATCH 1/2(resend)] include: Add ntifs.h with Reparse point related definitions and typedefs. Message-Id: <560DEB4D.6080303@gmail.com> Date: Fri, 2 Oct 2015 10:26:21 +0800 --- include/Makefile.in | 1 + include/ntifs.h | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 include/ntifs.h diff --git a/include/Makefile.in b/include/Makefile.in index 1dc912b..b1bb0bd 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -489,6 +489,7 @@ SRCDIR_INCLUDES = \ ntddstor.h \ ntdef.h \ ntdsapi.h \ + ntifs.h \ ntquery.h \ ntsecapi.h \ ntsecpkg.h \ diff --git a/include/ntifs.h b/include/ntifs.h new file mode 100644 index 0000000..345ba64 --- /dev/null +++ b/include/ntifs.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2015 YongHao Hu + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_NTIFS_H +#define __WINE_NTIFS_H + +#include "winioctl.h" + +#define REPARSE_MOUNTPOINT_HEADER_SIZE 8 +#define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003 +#define IO_REPARSE_TAG_SIS 0x80000007 + +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 +{ + ULONG ReparseTag; + USHORT ReparseDataLength; + USHORT Reserved; + GUID ReparseGuid; + struct + { + UCHAR DataBuffer[1]; + } GenericReparseBuffer; +} REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER; + +#endif /* __WINE_NTIFS_H */