headers: Add missing names in winbase.h. Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com> Signed-off-by: Liu Hao <lh_mouse@126.com>
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);