From 10cfcc41c79aa8cf4a62a9ded9b2a0a33a282ac1 Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <[email protected]>
Date: Thu, 24 Apr 2025 19:31:27 +0000
Subject: [PATCH] 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 <[email protected]>
---
 mingw-w64-headers/include/winioctl.h | 48 ++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

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 @@ typedef struct _CSV_NAMESPACE_INFO {
 #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_ */
 
 
-- 
2.49.0

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to