| 
									
										
										
										
											2014-05-05 19:46:17 +01:00
										 |  |  | #ifndef Py_WINREPARSE_H
 | 
					
						
							|  |  |  | #define Py_WINREPARSE_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef MS_WINDOWS
 | 
					
						
							| 
									
										
										
										
											2016-08-04 02:38:59 +00:00
										 |  |  | #include <windows.h>
 | 
					
						
							| 
									
										
										
										
											2014-05-05 19:46:17 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* The following structure was copied from
 | 
					
						
							|  |  |  |    http://msdn.microsoft.com/en-us/library/ff552012.aspx as the required
 | 
					
						
							| 
									
										
										
										
											2016-08-04 02:38:59 +00:00
										 |  |  |    include km\ntifs.h isn't present in the Windows SDK (at least as included | 
					
						
							|  |  |  |    with Visual Studio Express). Use unique names to avoid conflicting with | 
					
						
							|  |  |  |    the structure as defined by Min GW. */ | 
					
						
							|  |  |  | typedef struct { | 
					
						
							| 
									
										
										
										
											2014-05-05 19:46:17 +01:00
										 |  |  |     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; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2016-08-04 02:38:59 +00:00
										 |  |  | } _Py_REPARSE_DATA_BUFFER, *_Py_PREPARSE_DATA_BUFFER; | 
					
						
							| 
									
										
										
										
											2014-05-05 19:46:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-04 02:38:59 +00:00
										 |  |  | #define _Py_REPARSE_DATA_BUFFER_HEADER_SIZE \
 | 
					
						
							|  |  |  |     FIELD_OFFSET(_Py_REPARSE_DATA_BUFFER, GenericReparseBuffer) | 
					
						
							|  |  |  | #define _Py_MAXIMUM_REPARSE_DATA_BUFFER_SIZE  ( 16 * 1024 )
 | 
					
						
							| 
									
										
										
										
											2014-05-05 19:46:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-09 20:19:46 +02:00
										 |  |  | // Defined in WinBase.h in 'recent' versions of Windows 10 SDK
 | 
					
						
							|  |  |  | #ifndef SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
 | 
					
						
							|  |  |  | #define SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE 0x2
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-05 19:46:17 +01:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* MS_WINDOWS */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* !Py_WINREPARSE_H */
 |