| /* |
| * Copyright (C) the libgit2 contributors. All rights reserved. |
| * |
| * This file is part of libgit2, distributed under the GNU GPL v2 with |
| * a Linking Exception. For full terms see the included COPYING file. |
| */ |
| |
| #ifndef INCLUDE_git_win32_reparse_h__ |
| #define INCLUDE_git_win32_reparse_h__ |
| |
| /* This structure is defined on MSDN at |
| * http://msdn.microsoft.com/en-us/library/windows/hardware/ff552012(v=vs.85).aspx |
| * |
| * It was formerly included in the Windows 2000 SDK and remains defined in |
| * MinGW, so we must define it with a silly name to avoid conflicting. |
| */ |
| typedef struct _GIT_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; |
| }; |
| } GIT_REPARSE_DATA_BUFFER; |
| |
| #define REPARSE_DATA_HEADER_SIZE 8 |
| #define REPARSE_DATA_MOUNTPOINT_HEADER_SIZE 8 |
| #define REPARSE_DATA_UNION_SIZE 12 |
| |
| /* Missing in MinGW */ |
| #ifndef FSCTL_GET_REPARSE_POINT |
| # define FSCTL_GET_REPARSE_POINT 0x000900a8 |
| #endif |
| |
| /* Missing in MinGW */ |
| #ifndef FSCTL_SET_REPARSE_POINT |
| # define FSCTL_SET_REPARSE_POINT 0x000900a4 |
| #endif |
| |
| #endif |