++
+ typedef struct
+ { ULONG Index;
+ ULONG MediaType;
+--- w32api-5.0.2/include/shlobj.h.orig 2017-11-09 02:35:48.000000000 +0100
++++ w32api-5.0.2/include/shlobj.h 2019-03-17 21:21:15.503665619 +0100
+@@ -1500,6 +1500,41 @@
+ void WINAPI SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL);
+ #endif
+
++#if NTDDI_VERSION >= 0x06000000
++typedef GUID KNOWNFOLDERID;
++#ifdef __cplusplus
++#define REFKNOWNFOLDERID const KNOWNFOLDERID &
++#else
++#define REFKNOWNFOLDERID const KNOWNFOLDERID * /* __MIDL_CONST */
++#endif
++
++ typedef enum {
++ KF_FLAG_DEFAULT = 0x00000000,
++#if NTDDI_VERSION >= 0x06010000
++ KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000,
++#endif
++ KF_FLAG_CREATE = 0x00008000,
++ KF_FLAG_DONT_VERIFY = 0x00004000,
++ KF_FLAG_DONT_UNEXPAND = 0x00002000,
++ KF_FLAG_NO_ALIAS = 0x00001000,
++ KF_FLAG_INIT = 0x00000800,
++ KF_FLAG_DEFAULT_PATH = 0x00000400,
++ KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200,
++ KF_FLAG_SIMPLE_IDLIST = 0x00000100,
++ KF_FLAG_ALIAS_ONLY = 0x80000000
++ } KNOWN_FOLDER_FLAG;
++
++ DEFINE_ENUM_FLAG_OPERATORS (KNOWN_FOLDER_FLAG);
++
++ STDAPI SHGetKnownFolderIDList (REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, LPCITEMIDLIST *ppidl);
++ STDAPI SHSetKnownFolderPath (REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PCWSTR pszPath);
++ STDAPI SHGetKnownFolderPath (REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath);
++#endif
++
++#if NTDDI_VERSION >= 0x06010000
++ STDAPI SHGetKnownFolderItem (REFKNOWNFOLDERID rfid, KNOWN_FOLDER_FLAG flags, HANDLE hToken, REFIID riid, void **ppv);
++#endif
++
+ #if (_WIN32_WINNT >= 0x0500) /* W2K */
+ BOOL WINAPI ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST);
+ BOOL WINAPI ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL);
+--- w32api-5.0.2/include/winapifamily.h.orig 1970-01-01 01:00:00.000000000 +0100
++++ w32api-5.0.2/include/winapifamily.h 2020-07-28 18:04:49.272345505 +0200
+@@ -0,0 +1,24 @@
++/**
++ * This file is part of the mingw-w64 runtime package.
++ * No warranty is given; refer to the file DISCLAIMER within this package.
++ */
++
++#ifndef _INC_WINAPIFAMILY
++#define _INC_WINAPIFAMILY
++
++#define WINAPI_PARTITION_DESKTOP 0x1
++#define WINAPI_PARTITION_APP 0x2
++
++#define WINAPI_FAMILY_APP WINAPI_PARTITION_APP
++#define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP \
++ | WINAPI_PARTITION_APP)
++
++/* WINAPI_FAMILY can be either desktop + App, or App. */
++#ifndef WINAPI_FAMILY
++#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP
++#endif
++
++#define WINAPI_FAMILY_PARTITION(v) ((WINAPI_FAMILY & v) == v)
++#define WINAPI_FAMILY_ONE_PARTITION(vset, v) ((WINAPI_FAMILY & vset) == v)
++
++#endif
+--- w32api-5.0.2/include/winioctl.h.orig 2017-11-09 02:35:48.000000000 +0100
++++ w32api-5.0.2/include/winioctl.h 2019-03-17 21:22:23.789962347 +0100
+@@ -96,6 +96,7 @@
+ #define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM,41,METHOD_BUFFERED,FILE_ANY_ACCESS)
+ #define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM,43,METHOD_BUFFERED,FILE_ANY_ACCESS)
+ #define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,49,METHOD_BUFFERED,FILE_SPECIAL_ACCESS)
++#define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,50,METHOD_BUFFERED,FILE_WRITE_DATA)
+ #define FSCTL_ALLOW_EXTENDED_DASD_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM,32,METHOD_NEITHER,FILE_ANY_ACCESS)
+
+ typedef DWORD DEVICE_TYPE;
+@@ -272,6 +273,15 @@
+ LARGE_INTEGER MftZoneEnd;
+ } NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
+
++typedef struct _FILE_SET_SPARSE_BUFFER {
++ BOOLEAN SetSparse;
++} FILE_SET_SPARSE_BUFFER,*PFILE_SET_SPARSE_BUFFER;
++
++typedef struct _FILE_ZERO_DATA_INFORMATION {
++ LARGE_INTEGER FileOffset;
++ LARGE_INTEGER BeyondFinalZero;
++} FILE_ZERO_DATA_INFORMATION,*PFILE_ZERO_DATA_INFORMATION;
++
+ _END_C_DECLS
+
+ #undef __WINIOCTL_H_SOURCED__