1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #ifndef Py_WINREPARSE_H
- #define Py_WINREPARSE_H
- #ifdef MS_WINDOWS
- #include <windows.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* The following structure was copied from
- http://msdn.microsoft.com/en-us/library/ff552012.aspx as the required
- 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 {
- 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;
- };
- } _Py_REPARSE_DATA_BUFFER, *_Py_PREPARSE_DATA_BUFFER;
- #define _Py_REPARSE_DATA_BUFFER_HEADER_SIZE \
- FIELD_OFFSET(_Py_REPARSE_DATA_BUFFER, GenericReparseBuffer)
- #define _Py_MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
- // 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
- #ifdef __cplusplus
- }
- #endif
- #endif /* MS_WINDOWS */
- #endif /* !Py_WINREPARSE_H */
|