diff --git a/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c index 9b680eb533..3a64794943 100644 --- a/dll/win32/kernel32/client/proc.c +++ b/dll/win32/kernel32/client/proc.c @@ -1659,7 +1659,8 @@ WINAPI GetPriorityClass(IN HANDLE hProcess) { NTSTATUS Status; - PROCESS_PRIORITY_CLASS PriorityClass; + PROCESS_PRIORITY_CLASS DECLSPEC_ALIGN(4) PriorityClass; + C_ASSERT(sizeof(PriorityClass) == 2); /* Query the kernel */ Status = NtQueryInformationProcess(hProcess, @@ -1696,7 +1697,8 @@ SetPriorityClass(IN HANDLE hProcess, { NTSTATUS Status; PVOID State = NULL; - PROCESS_PRIORITY_CLASS PriorityClass; + PROCESS_PRIORITY_CLASS DECLSPEC_ALIGN(4) PriorityClass; + C_ASSERT(sizeof(PriorityClass) == 2); /* Handle conversion from Win32 to NT priority classes */ switch (dwPriorityClass) @@ -2270,7 +2272,7 @@ CreateProcessInternalW(IN HANDLE hUserToken, HANDLE DebugHandle, TokenHandle, JobHandle, KeyHandle, ThreadHandle; HANDLE FileHandle, SectionHandle, ProcessHandle; ULONG ResumeCount; - PROCESS_PRIORITY_CLASS PriorityClass; + PROCESS_PRIORITY_CLASS DECLSPEC_ALIGN(4) PriorityClass; NTSTATUS Status, AppCompatStatus, SaferStatus, IFEOStatus, ImageDbgStatus; PPEB Peb, RemotePeb; PTEB Teb; @@ -2342,6 +2344,8 @@ CreateProcessInternalW(IN HANDLE hUserToken, BOOLEAN IsWowApp; PBASE_CHECK_VDM CheckVdmMsg; + C_ASSERT(sizeof(PriorityClass) == 2); + /* Zero out the initial core variables and handles */ QuerySection = FALSE; InJob = FALSE; diff --git a/sdk/include/ndk/pstypes.h b/sdk/include/ndk/pstypes.h index 55839aca37..d10199097a 100644 --- a/sdk/include/ndk/pstypes.h +++ b/sdk/include/ndk/pstypes.h @@ -910,12 +910,15 @@ typedef struct _PROCESS_SESSION_INFORMATION #endif -typedef struct DECLSPEC_ALIGN(4) _PROCESS_PRIORITY_CLASS +typedef struct _PROCESS_PRIORITY_CLASS { BOOLEAN Foreground; UCHAR PriorityClass; } PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS; +// Compatibility with windows, see CORE-16757, CORE-17106, CORE-17247 +C_ASSERT(sizeof(PROCESS_PRIORITY_CLASS) == 2); + typedef struct _PROCESS_FOREGROUND_BACKGROUND { BOOLEAN Foreground;