diff --git a/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c index 9b680eb533..9d2c306bbc 100644 --- a/dll/win32/kernel32/client/proc.c +++ b/dll/win32/kernel32/client/proc.c @@ -1659,7 +1659,10 @@ WINAPI GetPriorityClass(IN HANDLE hProcess) { NTSTATUS Status; - PROCESS_PRIORITY_CLASS PriorityClass; + PROCESS_PRIORITY_CLASS DECLSPEC_ALIGN(4) PriorityClass; + + /* Fixes Google Earth crash CORE-17106 */ + if (hProcess == INVALID_HANDLE_VALUE) return 0; /* Query the kernel */ Status = NtQueryInformationProcess(hProcess, @@ -1696,7 +1699,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 +2273,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;