Use case of Compact OS compression: https://sourceware.org/pipermail/cygwin-apps/2021-May/041225.html
From bfc194b71cd3f490255f3955436eb9e636ce3d33 Mon Sep 17 00:00:00 2001 From: Christian Franke <christian.fra...@t-online.de> Date: Wed, 12 May 2021 18:09:33 +0200 Subject: [PATCH] headers: Add definitions for Compact OS compression. Signed-off-by: Christian Franke <christian.fra...@t-online.de> --- mingw-w64-headers/include/winerror.h | 3 +++ mingw-w64-headers/include/winioctl.h | 39 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/mingw-w64-headers/include/winerror.h b/mingw-w64-headers/include/winerror.h index ee3b72ed..609172d1 100755 --- a/mingw-w64-headers/include/winerror.h +++ b/mingw-w64-headers/include/winerror.h @@ -244,6 +244,9 @@ #define ERROR_INVALID_TOKEN __MSABI_LONG(315) #define ERROR_MR_MID_NOT_FOUND __MSABI_LONG(317) #define ERROR_SCOPE_NOT_FOUND __MSABI_LONG(318) +#define ERROR_OBJECT_NOT_EXTERNALLY_BACKED __MSABI_LONG(342) +#define ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN __MSABI_LONG(343) +#define ERROR_COMPRESSION_NOT_BENEFICIAL __MSABI_LONG(344) #define ERROR_INVALID_ADDRESS __MSABI_LONG(487) #define ERROR_ARITHMETIC_OVERFLOW __MSABI_LONG(534) #define ERROR_PIPE_CONNECTED __MSABI_LONG(535) diff --git a/mingw-w64-headers/include/winioctl.h b/mingw-w64-headers/include/winioctl.h index f017925e..e27cc3fb 100644 --- a/mingw-w64-headers/include/winioctl.h +++ b/mingw-w64-headers/include/winioctl.h @@ -2571,5 +2571,44 @@ typedef struct _VOLUME_DISK_EXTENTS { DISK_EXTENT Extents[1]; } VOLUME_DISK_EXTENTS,*PVOLUME_DISK_EXTENTS; +#if (_WIN32_WINNT >= 0x0603) + +#define FSCTL_SET_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM,195,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) +#define FSCTL_GET_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM,196,METHOD_BUFFERED,FILE_ANY_ACCESS) +#define FSCTL_DELETE_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM,197,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) + +#define WOF_CURRENT_VERSION 1 + +typedef struct _WOF_EXTERNAL_INFO { + DWORD Version; + DWORD Provider; +} WOF_EXTERNAL_INFO, *PWOF_EXTERNAL_INFO; + +#endif /*(_WIN32_WINNT >= 0x0603)*/ + +#if (_WIN32_WINNT >= 0x0A00) + +#define WOF_PROVIDER_FILE 2 + +#define FILE_PROVIDER_CURRENT_VERSION 1 + +#define FILE_PROVIDER_COMPRESSION_XPRESS4K 0 +#define FILE_PROVIDER_COMPRESSION_LZX 1 +#define FILE_PROVIDER_COMPRESSION_XPRESS8K 2 +#define FILE_PROVIDER_COMPRESSION_XPRESS16K 3 + +typedef struct _FILE_PROVIDER_EXTERNAL_INFO_V0 { + DWORD Version; + DWORD Algorithm; +} FILE_PROVIDER_EXTERNAL_INFO_V0, *PFILE_PROVIDER_EXTERNAL_INFO_V0; + +typedef struct _FILE_PROVIDER_EXTERNAL_INFO_V1 { + DWORD Version; + DWORD Algorithm; + DWORD Flags; +} FILE_PROVIDER_EXTERNAL_INFO_V1, *PFILE_PROVIDER_EXTERNAL_INFO_V1; + +#endif /*(_WIN32_WINNT >= 0x0A00)*/ + #endif /* _WINIOCTL_ */ -- 2.31.1
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public