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

Reply via email to