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_ */