diff --git a/mingw-w64-headers/include/winbase.h b/mingw-w64-headers/include/winbase.h
index 9a77bfe..dff8ee5 100644
--- a/mingw-w64-headers/include/winbase.h
+++ b/mingw-w64-headers/include/winbase.h
@@ -118,6 +118,19 @@
 #define COPY_FILE_RESUME_FROM_PAUSE 0x4000
 #define COPY_FILE_NO_OFFLOAD 0x40000
 #endif
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10
+#define COPY_FILE_IGNORE_EDP_BLOCK 0x00400000
+#define COPY_FILE_IGNORE_SOURCE_ENCRYPTION 0x00800000
+#define COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC 0x02000000
+#define COPY_FILE_REQUEST_COMPRESSED_TRAFFIC 0x10000000
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_VB
+#define COPY_FILE_OPEN_AND_COPY_REPARSE_POINT 0x00200000
+#define COPY_FILE_DIRECTORY 0x00000080
+#define COPY_FILE_SKIP_ALTERNATE_STREAMS 0x00008000
+#define COPY_FILE_DISABLE_PRE_ALLOCATION 0x04000000
+#define COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE 0x08000000
+#endif
 
 #define REPLACEFILE_WRITE_THROUGH 0x1
 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x2
@@ -159,6 +172,7 @@
 
   typedef VOID (WINAPI *PFIBER_START_ROUTINE) (LPVOID lpFiberParameter);
   typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
+  typedef LPVOID (WINAPI *PFIBER_CALLOUT_ROUTINE) (LPVOID lpParameter);
 
 #if defined (__i386__)
   typedef PLDT_ENTRY LPLDT_ENTRY;
@@ -396,6 +410,7 @@
 #define EXTENDED_STARTUPINFO_PRESENT 0x80000
 #define PROCESS_MODE_BACKGROUND_BEGIN 0x100000
 #define PROCESS_MODE_BACKGROUND_END 0x200000
+#define CREATE_SECURE_PROCESS 0x400000
 #define CREATE_BREAKAWAY_FROM_JOB 0x1000000
 #define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x2000000
 #define CREATE_DEFAULT_ERROR_MODE 0x4000000
@@ -1184,6 +1199,8 @@
   typedef enum _THREAD_INFORMATION_CLASS {
     ThreadMemoryPriority,
     ThreadAbsoluteCpuPriority,
+    ThreadDynamicCodePolicy,
+    ThreadPowerThrottling,
     ThreadInformationClassMax
   } THREAD_INFORMATION_CLASS;
 
@@ -1354,6 +1371,10 @@
   WINBASEAPI WINBOOL WINAPI SetCommTimeouts (HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts);
   WINBASEAPI WINBOOL WINAPI TransmitCommChar (HANDLE hFile, char cChar);
   WINBASEAPI WINBOOL WINAPI WaitCommEvent (HANDLE hFile, LPDWORD lpEvtMask, LPOVERLAPPED lpOverlapped);
+#if NTDDI_VERSION >= NTDDI_WIN10_RS3
+  WINBASEAPI HANDLE WINAPI OpenCommPort (ULONG uPortNumber, DWORD dwDesiredAccess, DWORD dwFlagsAndAttributes);
+  WINBASEAPI ULONG WINAPI GetCommPorts (PULONG lpPortNumbers, ULONG uPortNumbersCount, PULONG puPortNumbersFound);
+#endif
 
   WINBASEAPI WINBOOL WINAPI GetProcessPriorityBoost (HANDLE hProcess, PBOOL pDisablePriorityBoost);
   WINBASEAPI WINBOOL WINAPI SetProcessPriorityBoost (HANDLE hProcess, WINBOOL bDisablePriorityBoost);
@@ -1397,6 +1418,7 @@
 #define CREATE_FOR_DIR (2)
 #define OVERWRITE_HIDDEN (4)
 #define EFSRPC_SECURE_ONLY (8)
+#define EFS_DROP_ALTERNATE_STREAMS (0x10)
 
   WINBASEAPI WINBOOL WINAPI GetNamedPipeInfo (HANDLE hNamedPipe, LPDWORD lpFlags, LPDWORD lpOutBufferSize, LPDWORD lpInBufferSize, LPDWORD lpMaxInstances);
   WINBASEAPI HANDLE WINAPI CreateMailslotA (LPCSTR lpName, DWORD nMaxMessageSize, DWORD lReadTimeout, LPSECURITY_ATTRIBUTES lpSecurityAttributes);
@@ -1472,12 +1494,14 @@
 #define BACKUP_REPARSE_DATA 0x00000008
 #define BACKUP_SPARSE_BLOCK 0x00000009
 #define BACKUP_TXFS_DATA 0x0000000a
+#define BACKUP_GHOSTED_FILE_EXTENTS 0x0000000b
 
 #define STREAM_NORMAL_ATTRIBUTE 0x00000000
 #define STREAM_MODIFIED_WHEN_READ 0x00000001
 #define STREAM_CONTAINS_SECURITY 0x00000002
 #define STREAM_CONTAINS_PROPERTIES 0x00000004
 #define STREAM_SPARSE_ATTRIBUTE 0x00000008
+#define STREAM_CONTAINS_GHOSTED_FILE_EXTENTS 0x00000010
 
 #define STARTF_USESHOWWINDOW 0x00000001
 #define STARTF_USESIZE 0x00000002
@@ -1488,11 +1512,15 @@
 #define STARTF_FORCEONFEEDBACK 0x00000040
 #define STARTF_FORCEOFFFEEDBACK 0x00000080
 #define STARTF_USESTDHANDLES 0x00000100
-
+#if WINVER >= 0x0400
 #define STARTF_USEHOTKEY 0x00000200
 #define STARTF_TITLEISLINKNAME 0x00000800
 #define STARTF_TITLEISAPPID 0x00001000
 #define STARTF_PREVENTPINNING 0x00002000
+#endif
+#if WINVER >= 0x0600
+#define STARTF_UNTRUSTEDSOURCE 0x00008000
+#endif
 
 #if _WIN32_WINNT >= 0x0600
   typedef struct _STARTUPINFOEXA {
@@ -1569,6 +1597,14 @@
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
   typedef enum _PROCESS_INFORMATION_CLASS {
     ProcessMemoryPriority,
+    ProcessMemoryExhaustionInfo,
+    ProcessAppMemoryInfo,
+    ProcessInPrivateInfo,
+    ProcessPowerThrottling,
+    ProcessReservedValue1,
+    ProcessTelemetryCoverageInfo,
+    ProcessProtectionLevelInfo,
+    ProcessLeapSecondInfo,
     ProcessInformationClassMax
   } PROCESS_INFORMATION_CLASS;
 #endif
@@ -1579,6 +1615,20 @@
   WINBASEAPI WINBOOL WINAPI SetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcessInformationSize);
 #endif
 
+#if _WIN32_WINNT >= 0x0600
+#define PROTECTION_LEVEL_WINTCB_LIGHT 0x00000000
+#define PROTECTION_LEVEL_WINDOWS 0x00000001
+#define PROTECTION_LEVEL_WINDOWS_LIGHT 0x00000002
+#define PROTECTION_LEVEL_ANTIMALWARE_LIGHT 0x00000003
+#define PROTECTION_LEVEL_LSA_LIGHT 0x00000004
+#define PROTECTION_LEVEL_WINTCB 0x00000005
+#define PROTECTION_LEVEL_CODEGEN_LIGHT 0x00000006
+#define PROTECTION_LEVEL_AUTHENTICODE 0x00000007
+#define PROTECTION_LEVEL_PPL_APP 0x00000008
+#define PROTECTION_LEVEL_SAME 0xffffffff
+#define PROTECTION_LEVEL_NONE 0xfffffffe
+#endif
+
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
 #if _WIN32_WINNT >= 0x0600
 
@@ -1598,34 +1648,39 @@
   typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
     ProcThreadAttributeParentProcess = 0,
     ProcThreadAttributeHandleList = 2
-#if _WIN32_WINNT >= 0x0601
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
     ,ProcThreadAttributeGroupAffinity = 3,
     ProcThreadAttributePreferredNode = 4,
     ProcThreadAttributeIdealProcessor = 5,
     ProcThreadAttributeUmsThread = 6,
     ProcThreadAttributeMitigationPolicy = 7
 #endif
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
     ,ProcThreadAttributeSecurityCapabilities = 9
 #endif
     ,ProcThreadAttributeProtectionLevel = 11
-#if _WIN32_WINNT >= 0x0603
+#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
 #endif
-#if _WIN32_WINNT >= 0x0A00
+#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
     ,ProcThreadAttributeJobList = 13
     ,ProcThreadAttributeChildProcessPolicy = 14
     ,ProcThreadAttributeAllApplicationPackagesPolicy = 15
     ,ProcThreadAttributeWin32kFilter = 16
 #endif
-#if NTDDI_VERSION >= 0x0A000002
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
     ,ProcThreadAttributeSafeOpenPromptOriginClaim = 17
 #endif
-#if NTDDI_VERSION >= 0x0A000003
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
     ,ProcThreadAttributeDesktopAppPolicy = 18
 #endif
-#if NTDDI_VERSION >= 0x0A000006
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
     ,ProcThreadAttributePseudoConsole = 22
 #endif
+#if NTDDI_VERSION >= NTDDI_WIN10_19H1
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_MN
+    ,ProcThreadAttributeMitigationAuditPolicy = 24
+#endif
   } PROC_THREAD_ATTRIBUTE_NUM;
 #endif
 
@@ -1635,7 +1690,7 @@
 #define PROC_THREAD_ATTRIBUTE_HANDLE_LIST ProcThreadAttributeValue (ProcThreadAttributeHandleList, FALSE, TRUE, FALSE)
 #endif
 
-#if _WIN32_WINNT >= 0x0601
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
 #define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY ProcThreadAttributeValue (ProcThreadAttributeGroupAffinity, TRUE, TRUE, FALSE)
 #define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE ProcThreadAttributeValue (ProcThreadAttributePreferredNode, FALSE, TRUE, FALSE)
 #define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR ProcThreadAttributeValue (ProcThreadAttributeIdealProcessor, TRUE, TRUE, FALSE)
@@ -1643,26 +1698,26 @@
 #define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY ProcThreadAttributeValue (ProcThreadAttributeMitigationPolicy, FALSE, TRUE, FALSE)
 #endif
 
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
 #define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES ProcThreadAttributeValue (ProcThreadAttributeSecurityCapabilities, FALSE, TRUE, FALSE)
 #endif
 
 #define PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL ProcThreadAttributeValue (ProcThreadAttributeProtectionLevel, FALSE, TRUE, FALSE)
 
-#if _WIN32_WINNT >= 0x0603
+#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
 #endif
 
-#if NTDDI_VERSION >= 0x0A000006
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
 #define PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE ProcThreadAttributeValue (ProcThreadAttributePseudoConsole, FALSE, TRUE, FALSE)
 #endif
 
-#if _WIN32_WINNT >= 0x0601
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
 #define PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE 0x01
 #define PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE 0x02
 #define PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE 0x04
 #endif
 
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
 #define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES ProcThreadAttributeValue (ProcThreadAttributeSecurityCapabilities, FALSE, TRUE, FALSE)
 
 #define PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_MASK (0x00000003 << 8)
@@ -1707,6 +1762,8 @@
 #define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_OFF (0x00000002ULL << 32)
 #define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_RESERVED (0x00000003ULL << 32)
 
+#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
+
 #define PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_MASK (0x0003ULL << 36)
 #define PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_DEFER (0x0000ULL << 36)
 #define PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_ALWAYS_ON (0x0001ULL << 36)
@@ -1725,6 +1782,8 @@
 #define PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_OFF (0x0002ULL << 44)
 #define PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALLOW_STORE (0x0003ULL << 44)
 
+#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
+
 #define PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_MASK (0x0003ULL << 48)
 #define PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_DEFER (0x0000ULL << 48)
 #define PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_ALWAYS_ON (0x0001ULL << 48)
@@ -1767,8 +1826,103 @@
 #define PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_ALWAYS_OFF (0x0002ULL << 12)
 #define PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_NOINHERIT (0x0003ULL << 12)
 
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_MASK (0x00000003ULL << 16)
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_DEFER (0x00000000ULL << 16)
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_ALWAYS_ON (0x00000001ULL << 16)
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_ALWAYS_OFF (0x00000002ULL << 16)
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_RESERVED (0x00000003ULL << 16)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_MASK (0x00000003ULL << 20)
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_DEFER (0x00000000ULL << 20)
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_ALWAYS_ON (0x00000001ULL << 20)
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_ALWAYS_OFF (0x00000002ULL << 20)
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_RESERVED (0x00000003ULL << 20)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_MASK (0x00000003ULL << 24)
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_DEFER (0x00000000ULL << 24)
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_ALWAYS_ON (0x00000001ULL << 24)
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_ALWAYS_OFF (0x00000002ULL << 24)
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_RESERVED (0x00000003ULL << 24)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_MASK (0x00000003ULL << 28)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_DEFER (0x00000000ULL << 28)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_ON (0x00000001ULL << 28)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_OFF (0x00000002ULL << 28)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_STRICT_MODE (0x00000003ULL << 28)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_MASK (0x00000003ULL << 32)
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_DEFER (0x00000000ULL << 32)
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_ON (0x00000001ULL << 32)
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_OFF (0x00000002ULL << 32)
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE (0x00000003ULL << 32)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_MASK (0x00000003ULL << 36)
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_DEFER (0x00000000ULL << 36)
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_ON (0x00000001ULL << 36)
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_OFF (0x00000002ULL << 36)
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_NON_EHCONT (0x00000003ULL << 36)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_MASK (0x00000003ULL << 48)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_DEFER (0x00000000ULL << 48)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_ALWAYS_ON (0x00000001ULL << 48)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_ALWAYS_OFF (0x00000002ULL << 48)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_RESERVED (0x00000003ULL << 48)
+
+#endif /* _WIN32_WINNT_WINTHRESHOLD */
+#endif /* _WIN32_WINNT_WINBLUE */
+#endif /* _WIN32_WINNT_WIN8 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
+#define PROC_THREAD_ATTRIBUTE_JOB_LIST ProcThreadAttributeValue (ProcThreadAttributeJobList, FALSE, TRUE, FALSE)
+
+#define PROCESS_CREATION_CHILD_PROCESS_RESTRICTED 0x01
+#define PROCESS_CREATION_CHILD_PROCESS_OVERRIDE 0x02
+#define PROCESS_CREATION_CHILD_PROCESS_RESTRICTED_UNLESS_SECURE 0x04
+
+#define PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY ProcThreadAttributeValue (ProcThreadAttributeChildProcessPolicy, FALSE, TRUE, FALSE)
+
+#define PROCESS_CREATION_ALL_APPLICATION_PACKAGES_OPT_OUT 0x01
+
+#define PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY ProcThreadAttributeValue (ProcThreadAttributeAllApplicationPackagesPolicy, FALSE, TRUE, FALSE)
+#define PROC_THREAD_ATTRIBUTE_WIN32K_FILTER ProcThreadAttributeValue (ProcThreadAttributeWin32kFilter, FALSE, TRUE, FALSE)
+#endif /* _WIN32_WINNT_WINTHRESHOLD */
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
 #endif
 
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
+#define PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_ENABLE_PROCESS_TREE 0x01
+#define PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_DISABLE_PROCESS_TREE 0x02
+#define PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_OVERRIDE 0x04
+
+#define PROC_THREAD_ATTRIBUTE_DESKTOP_APP_POLICY ProcThreadAttributeValue (ProcThreadAttributeDesktopAppPolicy, FALSE, TRUE, FALSE)
+#endif /* NTDDI_WIN10_RS2 */
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WIN10_MN)
+#define PROC_THREAD_ATTRIBUTE_MITIGATION_AUDIT_POLICY ProcThreadAttributeValue (ProcThreadAttributeMitigationAuditPolicy, FALSE, TRUE, FALSE)
+
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_MASK (0x00000003ULL << 28)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_DEFER (0x00000000ULL << 28)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_ON (0x00000001ULL << 28)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_OFF (0x00000002ULL << 28)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_RESERVED (0x00000003ULL << 28)
+
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_MASK (0x00000003ULL << 32)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_DEFER (0x00000000ULL << 32)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_ON (0x00000001ULL << 32)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_OFF (0x00000002ULL << 32)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_RESERVED (0x00000003ULL << 32)
+
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_MASK (0x00000003ULL << 36)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_DEFER (0x00000000ULL << 36)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_ON (0x00000001ULL << 36)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_OFF (0x00000002ULL << 36)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_RESERVED (0x00000003ULL << 36)
+#endif /* NTDDI_WIN10_MN */
+
 #define ATOM_FLAG_GLOBAL 0x2
 
   WINBASEAPI WINBOOL WINAPI GetProcessShutdownParameters (LPDWORD lpdwLevel, LPDWORD lpdwFlags);
@@ -2566,6 +2720,8 @@
 
 #define BATTERY_PERCENTAGE_UNKNOWN 0xff
 
+#define SYSTEM_STATUS_FLAG_POWER_SAVING_ON 0x01
+
 #define BATTERY_LIFE_UNKNOWN 0xffffffff
 
   typedef struct _SYSTEM_POWER_STATUS {
@@ -2762,7 +2918,13 @@
 
   typedef WINBOOL (WINAPI *PQUERYACTCTXW_FUNC) (DWORD dwFlags, HANDLE hActCtx, PVOID pvSubInstance, ULONG ulInfoClass, PVOID pvBuffer, SIZE_T cbBuffer, SIZE_T *pcbWrittenOrRequired);
 
+#if _WIN32_WINNT >= 0x0501
   WINBASEAPI DWORD WINAPI WTSGetActiveConsoleSessionId (VOID);
+#endif
+#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
+  WINBASEAPI DWORD WINAPI WTSGetServiceSessionId (VOID);
+  WINBASEAPI BOOLEAN WINAPI WTSIsServerContainer (VOID);
+#endif
   WINBASEAPI WINBOOL WINAPI GetNumaProcessorNode (UCHAR Processor, PUCHAR NodeNumber);
   WINBASEAPI WINBOOL WINAPI GetNumaNodeProcessorMask (UCHAR Node, PULONGLONG ProcessorMask);
   WINBASEAPI WINBOOL WINAPI GetNumaAvailableMemoryNode (UCHAR Node, PULONGLONG AvailableBytes);
@@ -2835,8 +2997,28 @@
     WCHAR FileName[1];
   } FILE_NAME_INFO,*PFILE_NAME_INFO;
 
+  typedef struct _FILE_CASE_SENSITIVE_INFO {
+    ULONG Flags;
+  } FILE_CASE_SENSITIVE_INFO,*PFILE_CASE_SENSITIVE_INFO;
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS1
+#define FILE_RENAME_FLAG_REPLACE_IF_EXISTS 0x00000001
+#define FILE_RENAME_FLAG_POSIX_SEMANTICS 0x00000002
+#endif
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS3
+#define FILE_RENAME_FLAG_SUPPRESS_PIN_STATE_INHERITANCE 0x00000004
+#endif
+
   typedef struct _FILE_RENAME_INFO {
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS1
+    __C89_NAMELESS union {
+        BOOLEAN ReplaceIfExists;
+        DWORD Flags;
+    };
+#else
     BOOLEAN ReplaceIfExists;
+#endif
     HANDLE RootDirectory;
     DWORD FileNameLength;
     WCHAR FileName[1];
@@ -2876,6 +3058,21 @@
     BOOLEAN DeleteFile;
   } FILE_DISPOSITION_INFO,*PFILE_DISPOSITION_INFO;
 
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS1
+#define FILE_DISPOSITION_FLAG_DO_NOT_DELETE 0x00000000
+#define FILE_DISPOSITION_FLAG_DELETE 0x00000001
+#define FILE_DISPOSITION_FLAG_POSIX_SEMANTICS 0x00000002
+#define FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK 0x00000004
+#define FILE_DISPOSITION_FLAG_ON_CLOSE 0x00000008
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS5
+#define FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE 0x00000010
+#endif
+
+  typedef struct _FILE_DISPOSITION_INFO_EX {
+    DWORD Flags;
+  } FILE_DISPOSITION_INFO_EX,*PFILE_DISPOSITION_INFO_EX;
+#endif
+
   typedef struct _FILE_ID_BOTH_DIR_INFO {
     DWORD NextEntryOffset;
     DWORD FileIndex;
@@ -2919,7 +3116,8 @@
   typedef struct _FILE_IO_PRIORITY_HINT_INFO {
     PRIORITY_HINT PriorityHint;
   } FILE_IO_PRIORITY_HINT_INFO,*PFILE_IO_PRIORITY_HINT_INFO;
-#if _WIN32_WINNT >= 0x0602
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
   typedef struct _FILE_ALIGNMENT_INFO {
     ULONG AlignmentRequirement;
   } FILE_ALIGNMENT_INFO,*PFILE_ALIGNMENT_INFO;
@@ -2965,7 +3163,7 @@
 #define REMOTE_PROTOCOL_INFO_FLAG_LOOPBACK 0x00000001
 #define REMOTE_PROTOCOL_INFO_FLAG_OFFLINE 0x00000002
 
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
 #define REMOTE_PROTOCOL_INFO_FLAG_PERSISTENT_HANDLE 0x00000004
 
 #define RPI_FLAG_SMB2_SHARECAP_TIMEWARP 0x00000002
@@ -2994,7 +3192,7 @@
     struct {
       ULONG Reserved[8];
     } GenericReserved;
-#if _WIN32_WINNT < 0x0602
+#if _WIN32_WINNT < _WIN32_WINNT_WIN8
     struct {
       ULONG Reserved[16];
     } ProtocolSpecificReserved;
@@ -3031,7 +3229,7 @@
     __C89_NAMELESS union {
       LARGE_INTEGER FileId;
       GUID ObjectId;
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
       FILE_ID_128 ExtendedFileId;
 #endif
     } DUMMYUNIONNAME;
@@ -3071,6 +3269,9 @@
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
   WINBASEAPI WINBOOL WINAPI InitializeContext (PVOID Buffer, DWORD ContextFlags, PCONTEXT *Context, PDWORD ContextLength);
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
+  WINBASEAPI WINBOOL WINAPI InitializeContext2 (PVOID Buffer, DWORD ContextFlags, PCONTEXT *Context, PDWORD ContextLength, ULONG64 XStateCompactionMask);
+#endif
 #if defined (__x86_64__) || defined (__i386__)
   WINBASEAPI DWORD64 WINAPI GetEnabledXStateFeatures (VOID);
   WINBASEAPI WINBOOL WINAPI GetXStateFeaturesMask (PCONTEXT Context, PDWORD64 FeatureMask);
