diff options
author | Tim Golden <mail@timgolden.me.uk> | 2014-04-27 18:00:10 +0100 |
---|---|---|
committer | Tim Golden <mail@timgolden.me.uk> | 2014-04-27 18:00:10 +0100 |
commit | 4675d798bfdef3ad916d1eef6d5a4d0529ccfda7 (patch) | |
tree | 628685ce1f8db9455bb95819f876faa7c56bf020 /Modules/winreparse.h | |
parent | dd41f246875494c9acc6ebd4338f8df3ec6c28f0 (diff) | |
download | cpython-git-4675d798bfdef3ad916d1eef6d5a4d0529ccfda7.tar.gz |
Issue #18314 os.unlink will now remove junction points on Windows. 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 0000000000..66f7775dd2 --- /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 */ |