From 3450ef95091fc4e090b9dfd666a2d691dfcbd21f Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <nathbap...@gmail.com> Date: Sun, 4 Jul 2021 20:58:08 +0530 Subject: [PATCH 2/2] headers: Add more structures in processthreadsapi.h
Signed-off-by: Biswapriyo Nath <nathbap...@gmail.com> --- mingw-w64-headers/include/processthreadsapi.h | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/mingw-w64-headers/include/processthreadsapi.h b/mingw-w64-headers/include/processthreadsapi.h index a486343..fe71aa8 100644 --- a/mingw-w64-headers/include/processthreadsapi.h +++ b/mingw-w64-headers/include/processthreadsapi.h @@ -114,6 +114,70 @@ extern "C" { ProcessInformationClassMax } PROCESS_INFORMATION_CLASS; + typedef struct _APP_MEMORY_INFORMATION { + ULONG64 AvailableCommit; + ULONG64 PrivateCommitUsage; + ULONG64 PeakPrivateCommitUsage; + ULONG64 TotalCommitUsage; + } APP_MEMORY_INFORMATION, *PAPP_MEMORY_INFORMATION; + + typedef enum _MACHINE_ATTRIBUTES { + UserEnabled = 0x00000001, + KernelEnabled = 0x00000002, + Wow64Container = 0x00000004 + } MACHINE_ATTRIBUTES; +#ifndef __WIDL__ +DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES); +#endif + + typedef struct _PROCESS_MACHINE_INFORMATION { + USHORT ProcessMachine; + USHORT Res0; + MACHINE_ATTRIBUTES MachineAttributes; + } PROCESS_MACHINE_INFORMATION; + +#define PME_CURRENT_VERSION 1 + + typedef enum _PROCESS_MEMORY_EXHAUSTION_TYPE { + PMETypeFailFastOnCommitFailure, + PMETypeMax + } PROCESS_MEMORY_EXHAUSTION_TYPE, *PPROCESS_MEMORY_EXHAUSTION_TYPE; + +#define PME_FAILFAST_ON_COMMIT_FAIL_DISABLE 0x0 +#define PME_FAILFAST_ON_COMMIT_FAIL_ENABLE 0x1 + + typedef struct _PROCESS_MEMORY_EXHAUSTION_INFO { + USHORT Version; + USHORT Reserved; + PROCESS_MEMORY_EXHAUSTION_TYPE Type; + ULONG_PTR Value; + } PROCESS_MEMORY_EXHAUSTION_INFO, *PPROCESS_MEMORY_EXHAUSTION_INFO; + +#define PROCESS_POWER_THROTTLING_CURRENT_VERSION 1 + +#define PROCESS_POWER_THROTTLING_EXECUTION_SPEED 0x1 +#define PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION 0x4 + +#define PROCESS_POWER_THROTTLING_VALID_FLAGS (PROCESS_POWER_THROTTLING_EXECUTION_SPEED | PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION) + + typedef struct _PROCESS_POWER_THROTTLING_STATE { + ULONG Version; + ULONG ControlMask; + ULONG StateMask; + } PROCESS_POWER_THROTTLING_STATE, *PPROCESS_POWER_THROTTLING_STATE; + + typedef struct PROCESS_PROTECTION_LEVEL_INFORMATION { + DWORD ProtectionLevel; + } PROCESS_PROTECTION_LEVEL_INFORMATION; + +#define PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND 0x1 +#define PROCESS_LEAP_SECOND_INFO_VALID_FLAGS PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND + + typedef struct _PROCESS_LEAP_SECOND_INFO { + ULONG Flags; + ULONG Reserved; + } PROCESS_LEAP_SECOND_INFO, *PPROCESS_LEAP_SECOND_INFO; + #if _WIN32_WINNT >= 0x0602 WINBASEAPI WINBOOL WINAPI GetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcessInformationSize); WINBASEAPI WINBOOL WINAPI SetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcessInformationSize); @@ -230,6 +294,19 @@ extern "C" { #if _WIN32_WINNT >= 0x0601 WINBASEAPI WINBOOL WINAPI SetThreadIdealProcessorEx (HANDLE hThread, PPROCESSOR_NUMBER lpIdealProcessor, PPROCESSOR_NUMBER lpPreviousIdealProcessor); #endif +#if NTDDI_VERSION >= NTDDI_WIN10_VB + WINBASEAPI WINBOOL WINAPI SetProcessDynamicEHContinuationTargets (HANDLE Process, USHORT NumberOfTargets, PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets); +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_MN + typedef enum _QUEUE_USER_APC_FLAGS { + QUEUE_USER_APC_FLAGS_NONE = 0x0, + QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x1 + } QUEUE_USER_APC_FLAGS; + WINBASEAPI WINBOOL WINAPI QueueUserAPC2 (PAPCFUNC ApcRoutine, HANDLE Thread, ULONG_PTR Data, QUEUE_USER_APC_FLAGS Flags); +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_FE + WINBASEAPI WINBOOL WINAPI SetProcessDynamicEnforcedCetCompatibleRanges (HANDLE Process, USHORT NumberOfRanges, PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE Ranges); +#endif #endif -- 2.32.0
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public