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
Date: Wed, 12 May 2021 18:09:33 +0200
Subject: [PATCH] headers: Add definitions for Compact OS compression.
Signed-off-by: Christian Franke
---
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