diff options
author | Tim Golden <mail@timgolden.me.uk> | 2014-05-05 18:46:17 (GMT) |
---|---|---|
committer | Tim Golden <mail@timgolden.me.uk> | 2014-05-05 18:46:17 (GMT) |
commit | 0321cf25503e291eb4125411183e124f45793f64 (patch) | |
tree | 9e5db0d41a3f65874c8905e1e1506b5032c600b4 /Modules/winreparse.h | |
parent | a4790965f477a77daff6a0c04aabdb2a6a51a239 (diff) | |
download | cpython-0321cf25503e291eb4125411183e124f45793f64.zip cpython-0321cf25503e291eb4125411183e124f45793f64.tar.gz cpython-0321cf25503e291eb4125411183e124f45793f64.tar.bz2 |
Issue18314 Allow unlink to remove junctions. Includes support for creating junctions. Patch by Kim Gräsman
Diffstat (limited to 'Modules/winreparse.h')
-rw-r--r-- | Modules/winreparse.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Modules/winreparse.h b/Modules/winreparse.h new file mode 100644 index 0000000..66f7775 --- /dev/null +++ b/Modules/winreparse.h @@ -0,0 +1,53 @@ +#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 doesn't seem to be present in the Windows SDK (at least as included + with Visual Studio Express). */ +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; + }; +} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; + +#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER,\ + GenericReparseBuffer) +#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 ) + +#ifdef __cplusplus +} +#endif + +#endif /* MS_WINDOWS */ + +#endif /* !Py_WINREPARSE_H */ |