2 * Copyright (C) the libgit2 contributors. All rights reserved.
4 * This file is part of libgit2, distributed under the GNU GPL v2 with
5 * a Linking Exception. For full terms see the included COPYING file.
8 #ifndef INCLUDE_win32_reparse_h__
9 #define INCLUDE_win32_reparse_h__
11 /* This structure is defined on MSDN at
12 * http://msdn.microsoft.com/en-us/library/windows/hardware/ff552012(v=vs.85).aspx
14 * It was formerly included in the Windows 2000 SDK and remains defined in
15 * MinGW, so we must define it with a silly name to avoid conflicting.
17 typedef struct _GIT_REPARSE_DATA_BUFFER
{
19 USHORT ReparseDataLength
;
23 USHORT SubstituteNameOffset
;
24 USHORT SubstituteNameLength
;
25 USHORT PrintNameOffset
;
26 USHORT PrintNameLength
;
31 USHORT SubstituteNameOffset
;
32 USHORT SubstituteNameLength
;
33 USHORT PrintNameOffset
;
34 USHORT PrintNameLength
;
41 } GIT_REPARSE_DATA_BUFFER
;
43 #define REPARSE_DATA_HEADER_SIZE 8
44 #define REPARSE_DATA_MOUNTPOINT_HEADER_SIZE 8
45 #define REPARSE_DATA_UNION_SIZE 12
47 /* Missing in MinGW */
48 #ifndef FSCTL_GET_REPARSE_POINT
49 # define FSCTL_GET_REPARSE_POINT 0x000900a8
52 /* Missing in MinGW */
53 #ifndef FSCTL_SET_REPARSE_POINT
54 # define FSCTL_SET_REPARSE_POINT 0x000900a4