headers: Add buffer types for FSCTL_DUPLICATE_EXTENTS_TO_FILE(EX) in winioctl.h
Required for https://github.com/mingw-w64/mingw-w64/issues/90
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
diff --git a/mingw-w64-headers/include/winioctl.h b/mingw-w64-headers/include/winioctl.h
index 55aa288..036297c 100644
--- a/mingw-w64-headers/include/winioctl.h
+++ b/mingw-w64-headers/include/winioctl.h
@@ -3229,6 +3229,54 @@
#define FSCTL_LMR_QUERY_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 286, METHOD_BUFFERED, FILE_ANY_ACCESS)
#endif
+#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE)
+typedef struct _DUPLICATE_EXTENTS_DATA {
+ HANDLE FileHandle;
+ LARGE_INTEGER SourceFileOffset;
+ LARGE_INTEGER TargetFileOffset;
+ LARGE_INTEGER ByteCount;
+} DUPLICATE_EXTENTS_DATA, *PDUPLICATE_EXTENTS_DATA;
+
+#if ((NTDDI_VERSION >= NTDDI_WIN10_RS2) && defined(_WIN64))
+typedef struct _DUPLICATE_EXTENTS_DATA32 {
+ UINT32 FileHandle;
+ LARGE_INTEGER SourceFileOffset;
+ LARGE_INTEGER TargetFileOffset;
+ LARGE_INTEGER ByteCount;
+} DUPLICATE_EXTENTS_DATA32, *PDUPLICATE_EXTENTS_DATA32;
+#endif /* ((NTDDI_VERSION >= NTDDI_WIN10_RS2) && defined(_WIN64)) */
+
+#endif /* (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE) */
+
+#if (NTDDI_VERSION >= NTDDI_WIN10_RS3)
+#define DUPLICATE_EXTENTS_DATA_EX_SOURCE_ATOMIC 0x00000001
+
+#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
+#define DUPLICATE_EXTENTS_DATA_EX_ASYNC 0x00000002
+#endif /* (NTDDI_VERSION >= NTDDI_WIN10_VB) */
+
+typedef struct _DUPLICATE_EXTENTS_DATA_EX {
+ SIZE_T Size;
+ HANDLE FileHandle;
+ LARGE_INTEGER SourceFileOffset;
+ LARGE_INTEGER TargetFileOffset;
+ LARGE_INTEGER ByteCount;
+ DWORD Flags;
+} DUPLICATE_EXTENTS_DATA_EX, *PDUPLICATE_EXTENTS_DATA_EX;
+
+#if ((NTDDI_VERSION >= NTDDI_WIN10_RS3) && defined(_WIN64))
+typedef struct _DUPLICATE_EXTENTS_DATA_EX32 {
+ DWORD32 Size;
+ DWORD32 FileHandle;
+ LARGE_INTEGER SourceFileOffset;
+ LARGE_INTEGER TargetFileOffset;
+ LARGE_INTEGER ByteCount;
+ DWORD Flags;
+} DUPLICATE_EXTENTS_DATA_EX32, *PDUPLICATE_EXTENTS_DATA_EX32;
+#endif /* ((NTDDI_VERSION >= NTDDI_WIN10_RS3) && defined(_WIN64)) */
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN10_RS3) */
+
#endif /* _FILESYSTEMFSCTL_ */