diff --git a/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c index 9b680eb533..f511334976 100644 --- a/dll/win32/kernel32/client/proc.c +++ b/dll/win32/kernel32/client/proc.c @@ -1659,7 +1659,7 @@ WINAPI GetPriorityClass(IN HANDLE hProcess) { NTSTATUS Status; - PROCESS_PRIORITY_CLASS PriorityClass; + PROCESS_PRIORITY_CLASS DECLSPEC_ALIGN(4) PriorityClass; /* Query the kernel */ Status = NtQueryInformationProcess(hProcess, @@ -1696,7 +1696,7 @@ SetPriorityClass(IN HANDLE hProcess, { NTSTATUS Status; PVOID State = NULL; - PROCESS_PRIORITY_CLASS PriorityClass; + PROCESS_PRIORITY_CLASS DECLSPEC_ALIGN(4) PriorityClass; /* Handle conversion from Win32 to NT priority classes */ switch (dwPriorityClass) @@ -2270,7 +2270,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; 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;