Microsoft Edge worked if windows version is set to win8.1 (or win7) but now crashes in current wine due to this unimplemented function. This patch makes it work again in win8.1 mode; (It's still broken in win10 mode, see https://bugs.winehq.org/show_bug.cgi?id=56378 for more info)
-- v9: win32u: Add stub for NtUserSetAdditionalForegroundBoostProcesses.
From: Louis Lenders xerox.xerox2000x@gmail.com
Microsoft Edge worked if windows version is set to win8.1 (or win7) but now crashes in current wine due to this unimplemented function. This patch makes it work again in win8.1 mode; (It's still broken in win10 mode, see https://bugs.winehq.org/show_bug.cgi?id=56378 for more info) --- dlls/user32/user32.spec | 2 +- dlls/win32u/main.c | 5 + dlls/win32u/sysparams.c | 10 ++ dlls/win32u/win32syscalls.h | 298 ++++++++++++++++++------------------ dlls/win32u/win32u.spec | 2 +- dlls/wow64win/user.c | 8 + include/ntuser.h | 1 + 7 files changed, 176 insertions(+), 150 deletions(-)
diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index d8e82d9503b..c4c4c0d5970 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -164,7 +164,7 @@ # 2662 stub RIMRegisterForInputEx # 2663 stub RIMOnAsyncPnpWorkNotification 2664 stub ShellMigrateWindow # NtUserShellMigrateWindow -2665 stub SetAdditionalForegroundBoostProcesses # NtUserSetAdditionalForegroundBoostProcesses +2665 stdcall SetAdditionalForegroundBoostProcesses(ptr long ptr) NtUserSetAdditionalForegroundBoostProcesses 2666 stub RegisterForTooltipDismissNotification # NtUserRegisterForTooltipDismissNotification 2667 stub RegisterForCustomDockTargets # NtUserRegisterForCustomDockTargets 2668 stub GetClipboardMetadata # NtUserGetClipboardMetadata diff --git a/dlls/win32u/main.c b/dlls/win32u/main.c index 6a2606c365c..87885b207bc 100644 --- a/dlls/win32u/main.c +++ b/dlls/win32u/main.c @@ -2055,6 +2055,11 @@ HWND SYSCALL_API NtUserSetActiveWindow( HWND hwnd ) SYSCALL_FUNC( NtUserSetActiveWindow ); }
+BOOL SYSCALL_API NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD count, HANDLE *array ) +{ + SYSCALL_FUNC( NtUserSetAdditionalForegroundBoostProcesses ); +} + HWND SYSCALL_API NtUserSetCapture( HWND hwnd ) { SYSCALL_FUNC( NtUserSetCapture ); diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 0f31d3e49b1..35804b48435 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -6973,6 +6973,16 @@ BOOL WINAPI NtUserMessageBeep( UINT type ) return TRUE; }
+/*********************************************************************** + * NtUserSetAdditionalForegroundBoostProcesses (win32u.@) + */ +BOOL WINAPI NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD (unsigned int)count, HANDLE *array ) +{ + FIXME( "%p %ld %p stub!\n", hwnd, (unsigned int)count, array ); + RtlSetLastWin32Error( ERROR_CALL_NOT_IMPLEMENTED ); + return FALSE; +} + static DWORD exiting_thread_id;
/********************************************************************** diff --git a/dlls/win32u/win32syscalls.h b/dlls/win32u/win32syscalls.h index 79b45c17a07..76f1cea0d13 100644 --- a/dlls/win32u/win32syscalls.h +++ b/dlls/win32u/win32syscalls.h @@ -384,80 +384,81 @@ SYSCALL_ENTRY( 0x017c, NtUserSelectPalette, 12 ) \ SYSCALL_ENTRY( 0x017d, NtUserSendInput, 12 ) \ SYSCALL_ENTRY( 0x017e, NtUserSetActiveWindow, 4 ) \ - SYSCALL_ENTRY( 0x017f, NtUserSetCapture, 4 ) \ - SYSCALL_ENTRY( 0x0180, NtUserSetCaretBlinkTime, 4 ) \ - SYSCALL_ENTRY( 0x0181, NtUserSetCaretPos, 8 ) \ - SYSCALL_ENTRY( 0x0182, NtUserSetClassLong, 16 ) \ - SYSCALL_ENTRY( 0x0183, NtUserSetClassLongPtr, 16 ) \ - SYSCALL_ENTRY( 0x0184, NtUserSetClassWord, 12 ) \ - SYSCALL_ENTRY( 0x0185, NtUserSetClipboardData, 12 ) \ - SYSCALL_ENTRY( 0x0186, NtUserSetClipboardViewer, 4 ) \ - SYSCALL_ENTRY( 0x0187, NtUserSetCursor, 4 ) \ - SYSCALL_ENTRY( 0x0188, NtUserSetCursorIconData, 16 ) \ - SYSCALL_ENTRY( 0x0189, NtUserSetCursorPos, 8 ) \ - SYSCALL_ENTRY( 0x018a, NtUserSetFocus, 4 ) \ - SYSCALL_ENTRY( 0x018b, NtUserSetInternalWindowPos, 16 ) \ - SYSCALL_ENTRY( 0x018c, NtUserSetKeyboardState, 4 ) \ - SYSCALL_ENTRY( 0x018d, NtUserSetLayeredWindowAttributes, 16 ) \ - SYSCALL_ENTRY( 0x018e, NtUserSetMenu, 8 ) \ - SYSCALL_ENTRY( 0x018f, NtUserSetMenuContextHelpId, 8 ) \ - SYSCALL_ENTRY( 0x0190, NtUserSetMenuDefaultItem, 12 ) \ - SYSCALL_ENTRY( 0x0191, NtUserSetObjectInformation, 16 ) \ - SYSCALL_ENTRY( 0x0192, NtUserSetParent, 8 ) \ - SYSCALL_ENTRY( 0x0193, NtUserSetProcessDefaultLayout, 4 ) \ - SYSCALL_ENTRY( 0x0194, NtUserSetProcessDpiAwarenessContext, 8 ) \ - SYSCALL_ENTRY( 0x0195, NtUserSetProcessWindowStation, 4 ) \ - SYSCALL_ENTRY( 0x0196, NtUserSetProgmanWindow, 4 ) \ - SYSCALL_ENTRY( 0x0197, NtUserSetProp, 12 ) \ - SYSCALL_ENTRY( 0x0198, NtUserSetScrollInfo, 16 ) \ - SYSCALL_ENTRY( 0x0199, NtUserSetShellWindowEx, 8 ) \ - SYSCALL_ENTRY( 0x019a, NtUserSetSysColors, 12 ) \ - SYSCALL_ENTRY( 0x019b, NtUserSetSystemMenu, 8 ) \ - SYSCALL_ENTRY( 0x019c, NtUserSetSystemTimer, 12 ) \ - SYSCALL_ENTRY( 0x019d, NtUserSetTaskmanWindow, 4 ) \ - SYSCALL_ENTRY( 0x019e, NtUserSetThreadDesktop, 4 ) \ - SYSCALL_ENTRY( 0x019f, NtUserSetTimer, 20 ) \ - SYSCALL_ENTRY( 0x01a0, NtUserSetWinEventHook, 32 ) \ - SYSCALL_ENTRY( 0x01a1, NtUserSetWindowContextHelpId, 8 ) \ - SYSCALL_ENTRY( 0x01a2, NtUserSetWindowLong, 16 ) \ - SYSCALL_ENTRY( 0x01a3, NtUserSetWindowLongPtr, 16 ) \ - SYSCALL_ENTRY( 0x01a4, NtUserSetWindowPlacement, 8 ) \ - SYSCALL_ENTRY( 0x01a5, NtUserSetWindowPos, 28 ) \ - SYSCALL_ENTRY( 0x01a6, NtUserSetWindowRgn, 12 ) \ - SYSCALL_ENTRY( 0x01a7, NtUserSetWindowWord, 12 ) \ - SYSCALL_ENTRY( 0x01a8, NtUserSetWindowsHookEx, 24 ) \ - SYSCALL_ENTRY( 0x01a9, NtUserShowCaret, 4 ) \ - SYSCALL_ENTRY( 0x01aa, NtUserShowCursor, 4 ) \ - SYSCALL_ENTRY( 0x01ab, NtUserShowOwnedPopups, 8 ) \ - SYSCALL_ENTRY( 0x01ac, NtUserShowScrollBar, 12 ) \ - SYSCALL_ENTRY( 0x01ad, NtUserShowWindow, 8 ) \ - SYSCALL_ENTRY( 0x01ae, NtUserShowWindowAsync, 8 ) \ - SYSCALL_ENTRY( 0x01af, NtUserSwitchDesktop, 4 ) \ - SYSCALL_ENTRY( 0x01b0, NtUserSystemParametersInfo, 16 ) \ - SYSCALL_ENTRY( 0x01b1, NtUserSystemParametersInfoForDpi, 20 ) \ - SYSCALL_ENTRY( 0x01b2, NtUserThunkedMenuInfo, 8 ) \ - SYSCALL_ENTRY( 0x01b3, NtUserThunkedMenuItemInfo, 24 ) \ - SYSCALL_ENTRY( 0x01b4, NtUserToUnicodeEx, 28 ) \ - SYSCALL_ENTRY( 0x01b5, NtUserTrackMouseEvent, 4 ) \ - SYSCALL_ENTRY( 0x01b6, NtUserTrackPopupMenuEx, 24 ) \ - SYSCALL_ENTRY( 0x01b7, NtUserTranslateAccelerator, 12 ) \ - SYSCALL_ENTRY( 0x01b8, NtUserTranslateMessage, 8 ) \ - SYSCALL_ENTRY( 0x01b9, NtUserUnhookWinEvent, 4 ) \ - SYSCALL_ENTRY( 0x01ba, NtUserUnhookWindowsHook, 8 ) \ - SYSCALL_ENTRY( 0x01bb, NtUserUnhookWindowsHookEx, 4 ) \ - SYSCALL_ENTRY( 0x01bc, NtUserUnregisterClass, 12 ) \ - SYSCALL_ENTRY( 0x01bd, NtUserUnregisterHotKey, 8 ) \ - SYSCALL_ENTRY( 0x01be, NtUserUpdateInputContext, 12 ) \ - SYSCALL_ENTRY( 0x01bf, NtUserUpdateLayeredWindow, 40 ) \ - SYSCALL_ENTRY( 0x01c0, NtUserValidateRect, 8 ) \ - SYSCALL_ENTRY( 0x01c1, NtUserValidateRgn, 8 ) \ - SYSCALL_ENTRY( 0x01c2, NtUserVkKeyScanEx, 8 ) \ - SYSCALL_ENTRY( 0x01c3, NtUserWaitForInputIdle, 12 ) \ - SYSCALL_ENTRY( 0x01c4, NtUserWaitMessage, 0 ) \ - SYSCALL_ENTRY( 0x01c5, NtUserWindowFromDC, 4 ) \ - SYSCALL_ENTRY( 0x01c6, NtUserWindowFromPoint, 8 ) \ - SYSCALL_ENTRY( 0x01c7, __wine_get_file_outline_text_metric, 16 ) \ - SYSCALL_ENTRY( 0x01c8, __wine_get_icm_profile, 16 ) + SYSCALL_ENTRY( 0x017f, NtUserSetAdditionalForegroundBoostProcesses, 12 ) \ + SYSCALL_ENTRY( 0x0180, NtUserSetCapture, 4 ) \ + SYSCALL_ENTRY( 0x0181, NtUserSetCaretBlinkTime, 4 ) \ + SYSCALL_ENTRY( 0x0182, NtUserSetCaretPos, 8 ) \ + SYSCALL_ENTRY( 0x0183, NtUserSetClassLong, 16 ) \ + SYSCALL_ENTRY( 0x0184, NtUserSetClassLongPtr, 16 ) \ + SYSCALL_ENTRY( 0x0185, NtUserSetClassWord, 12 ) \ + SYSCALL_ENTRY( 0x0186, NtUserSetClipboardData, 12 ) \ + SYSCALL_ENTRY( 0x0187, NtUserSetClipboardViewer, 4 ) \ + SYSCALL_ENTRY( 0x0188, NtUserSetCursor, 4 ) \ + SYSCALL_ENTRY( 0x0189, NtUserSetCursorIconData, 16 ) \ + SYSCALL_ENTRY( 0x018a, NtUserSetCursorPos, 8 ) \ + SYSCALL_ENTRY( 0x018b, NtUserSetFocus, 4 ) \ + SYSCALL_ENTRY( 0x018c, NtUserSetInternalWindowPos, 16 ) \ + SYSCALL_ENTRY( 0x018d, NtUserSetKeyboardState, 4 ) \ + SYSCALL_ENTRY( 0x018e, NtUserSetLayeredWindowAttributes, 16 ) \ + SYSCALL_ENTRY( 0x018f, NtUserSetMenu, 8 ) \ + SYSCALL_ENTRY( 0x0190, NtUserSetMenuContextHelpId, 8 ) \ + SYSCALL_ENTRY( 0x0191, NtUserSetMenuDefaultItem, 12 ) \ + SYSCALL_ENTRY( 0x0192, NtUserSetObjectInformation, 16 ) \ + SYSCALL_ENTRY( 0x0193, NtUserSetParent, 8 ) \ + SYSCALL_ENTRY( 0x0194, NtUserSetProcessDefaultLayout, 4 ) \ + SYSCALL_ENTRY( 0x0195, NtUserSetProcessDpiAwarenessContext, 8 ) \ + SYSCALL_ENTRY( 0x0196, NtUserSetProcessWindowStation, 4 ) \ + SYSCALL_ENTRY( 0x0197, NtUserSetProgmanWindow, 4 ) \ + SYSCALL_ENTRY( 0x0198, NtUserSetProp, 12 ) \ + SYSCALL_ENTRY( 0x0199, NtUserSetScrollInfo, 16 ) \ + SYSCALL_ENTRY( 0x019a, NtUserSetShellWindowEx, 8 ) \ + SYSCALL_ENTRY( 0x019b, NtUserSetSysColors, 12 ) \ + SYSCALL_ENTRY( 0x019c, NtUserSetSystemMenu, 8 ) \ + SYSCALL_ENTRY( 0x019d, NtUserSetSystemTimer, 12 ) \ + SYSCALL_ENTRY( 0x019e, NtUserSetTaskmanWindow, 4 ) \ + SYSCALL_ENTRY( 0x019f, NtUserSetThreadDesktop, 4 ) \ + SYSCALL_ENTRY( 0x01a0, NtUserSetTimer, 20 ) \ + SYSCALL_ENTRY( 0x01a1, NtUserSetWinEventHook, 32 ) \ + SYSCALL_ENTRY( 0x01a2, NtUserSetWindowContextHelpId, 8 ) \ + SYSCALL_ENTRY( 0x01a3, NtUserSetWindowLong, 16 ) \ + SYSCALL_ENTRY( 0x01a4, NtUserSetWindowLongPtr, 16 ) \ + SYSCALL_ENTRY( 0x01a5, NtUserSetWindowPlacement, 8 ) \ + SYSCALL_ENTRY( 0x01a6, NtUserSetWindowPos, 28 ) \ + SYSCALL_ENTRY( 0x01a7, NtUserSetWindowRgn, 12 ) \ + SYSCALL_ENTRY( 0x01a8, NtUserSetWindowWord, 12 ) \ + SYSCALL_ENTRY( 0x01a9, NtUserSetWindowsHookEx, 24 ) \ + SYSCALL_ENTRY( 0x01aa, NtUserShowCaret, 4 ) \ + SYSCALL_ENTRY( 0x01ab, NtUserShowCursor, 4 ) \ + SYSCALL_ENTRY( 0x01ac, NtUserShowOwnedPopups, 8 ) \ + SYSCALL_ENTRY( 0x01ad, NtUserShowScrollBar, 12 ) \ + SYSCALL_ENTRY( 0x01ae, NtUserShowWindow, 8 ) \ + SYSCALL_ENTRY( 0x01af, NtUserShowWindowAsync, 8 ) \ + SYSCALL_ENTRY( 0x01b0, NtUserSwitchDesktop, 4 ) \ + SYSCALL_ENTRY( 0x01b1, NtUserSystemParametersInfo, 16 ) \ + SYSCALL_ENTRY( 0x01b2, NtUserSystemParametersInfoForDpi, 20 ) \ + SYSCALL_ENTRY( 0x01b3, NtUserThunkedMenuInfo, 8 ) \ + SYSCALL_ENTRY( 0x01b4, NtUserThunkedMenuItemInfo, 24 ) \ + SYSCALL_ENTRY( 0x01b5, NtUserToUnicodeEx, 28 ) \ + SYSCALL_ENTRY( 0x01b6, NtUserTrackMouseEvent, 4 ) \ + SYSCALL_ENTRY( 0x01b7, NtUserTrackPopupMenuEx, 24 ) \ + SYSCALL_ENTRY( 0x01b8, NtUserTranslateAccelerator, 12 ) \ + SYSCALL_ENTRY( 0x01b9, NtUserTranslateMessage, 8 ) \ + SYSCALL_ENTRY( 0x01ba, NtUserUnhookWinEvent, 4 ) \ + SYSCALL_ENTRY( 0x01bb, NtUserUnhookWindowsHook, 8 ) \ + SYSCALL_ENTRY( 0x01bc, NtUserUnhookWindowsHookEx, 4 ) \ + SYSCALL_ENTRY( 0x01bd, NtUserUnregisterClass, 12 ) \ + SYSCALL_ENTRY( 0x01be, NtUserUnregisterHotKey, 8 ) \ + SYSCALL_ENTRY( 0x01bf, NtUserUpdateInputContext, 12 ) \ + SYSCALL_ENTRY( 0x01c0, NtUserUpdateLayeredWindow, 40 ) \ + SYSCALL_ENTRY( 0x01c1, NtUserValidateRect, 8 ) \ + SYSCALL_ENTRY( 0x01c2, NtUserValidateRgn, 8 ) \ + SYSCALL_ENTRY( 0x01c3, NtUserVkKeyScanEx, 8 ) \ + SYSCALL_ENTRY( 0x01c4, NtUserWaitForInputIdle, 12 ) \ + SYSCALL_ENTRY( 0x01c5, NtUserWaitMessage, 0 ) \ + SYSCALL_ENTRY( 0x01c6, NtUserWindowFromDC, 4 ) \ + SYSCALL_ENTRY( 0x01c7, NtUserWindowFromPoint, 8 ) \ + SYSCALL_ENTRY( 0x01c8, __wine_get_file_outline_text_metric, 16 ) \ + SYSCALL_ENTRY( 0x01c9, __wine_get_icm_profile, 16 )
#define ALL_SYSCALLS64 \ SYSCALL_ENTRY( 0x0000, NtGdiAbortDoc, 8 ) \ @@ -843,77 +844,78 @@ SYSCALL_ENTRY( 0x017c, NtUserSelectPalette, 24 ) \ SYSCALL_ENTRY( 0x017d, NtUserSendInput, 24 ) \ SYSCALL_ENTRY( 0x017e, NtUserSetActiveWindow, 8 ) \ - SYSCALL_ENTRY( 0x017f, NtUserSetCapture, 8 ) \ - SYSCALL_ENTRY( 0x0180, NtUserSetCaretBlinkTime, 8 ) \ - SYSCALL_ENTRY( 0x0181, NtUserSetCaretPos, 16 ) \ - SYSCALL_ENTRY( 0x0182, NtUserSetClassLong, 32 ) \ - SYSCALL_ENTRY( 0x0183, NtUserSetClassLongPtr, 32 ) \ - SYSCALL_ENTRY( 0x0184, NtUserSetClassWord, 24 ) \ - SYSCALL_ENTRY( 0x0185, NtUserSetClipboardData, 24 ) \ - SYSCALL_ENTRY( 0x0186, NtUserSetClipboardViewer, 8 ) \ - SYSCALL_ENTRY( 0x0187, NtUserSetCursor, 8 ) \ - SYSCALL_ENTRY( 0x0188, NtUserSetCursorIconData, 32 ) \ - SYSCALL_ENTRY( 0x0189, NtUserSetCursorPos, 16 ) \ - SYSCALL_ENTRY( 0x018a, NtUserSetFocus, 8 ) \ - SYSCALL_ENTRY( 0x018b, NtUserSetInternalWindowPos, 32 ) \ - SYSCALL_ENTRY( 0x018c, NtUserSetKeyboardState, 8 ) \ - SYSCALL_ENTRY( 0x018d, NtUserSetLayeredWindowAttributes, 32 ) \ - SYSCALL_ENTRY( 0x018e, NtUserSetMenu, 16 ) \ - SYSCALL_ENTRY( 0x018f, NtUserSetMenuContextHelpId, 16 ) \ - SYSCALL_ENTRY( 0x0190, NtUserSetMenuDefaultItem, 24 ) \ - SYSCALL_ENTRY( 0x0191, NtUserSetObjectInformation, 32 ) \ - SYSCALL_ENTRY( 0x0192, NtUserSetParent, 16 ) \ - SYSCALL_ENTRY( 0x0193, NtUserSetProcessDefaultLayout, 8 ) \ - SYSCALL_ENTRY( 0x0194, NtUserSetProcessDpiAwarenessContext, 16 ) \ - SYSCALL_ENTRY( 0x0195, NtUserSetProcessWindowStation, 8 ) \ - SYSCALL_ENTRY( 0x0196, NtUserSetProgmanWindow, 8 ) \ - SYSCALL_ENTRY( 0x0197, NtUserSetProp, 24 ) \ - SYSCALL_ENTRY( 0x0198, NtUserSetScrollInfo, 32 ) \ - SYSCALL_ENTRY( 0x0199, NtUserSetShellWindowEx, 16 ) \ - SYSCALL_ENTRY( 0x019a, NtUserSetSysColors, 24 ) \ - SYSCALL_ENTRY( 0x019b, NtUserSetSystemMenu, 16 ) \ - SYSCALL_ENTRY( 0x019c, NtUserSetSystemTimer, 24 ) \ - SYSCALL_ENTRY( 0x019d, NtUserSetTaskmanWindow, 8 ) \ - SYSCALL_ENTRY( 0x019e, NtUserSetThreadDesktop, 8 ) \ - SYSCALL_ENTRY( 0x019f, NtUserSetTimer, 40 ) \ - SYSCALL_ENTRY( 0x01a0, NtUserSetWinEventHook, 64 ) \ - SYSCALL_ENTRY( 0x01a1, NtUserSetWindowContextHelpId, 16 ) \ - SYSCALL_ENTRY( 0x01a2, NtUserSetWindowLong, 32 ) \ - SYSCALL_ENTRY( 0x01a3, NtUserSetWindowLongPtr, 32 ) \ - SYSCALL_ENTRY( 0x01a4, NtUserSetWindowPlacement, 16 ) \ - SYSCALL_ENTRY( 0x01a5, NtUserSetWindowPos, 56 ) \ - SYSCALL_ENTRY( 0x01a6, NtUserSetWindowRgn, 24 ) \ - SYSCALL_ENTRY( 0x01a7, NtUserSetWindowWord, 24 ) \ - SYSCALL_ENTRY( 0x01a8, NtUserSetWindowsHookEx, 48 ) \ - SYSCALL_ENTRY( 0x01a9, NtUserShowCaret, 8 ) \ - SYSCALL_ENTRY( 0x01aa, NtUserShowCursor, 8 ) \ - SYSCALL_ENTRY( 0x01ab, NtUserShowOwnedPopups, 16 ) \ - SYSCALL_ENTRY( 0x01ac, NtUserShowScrollBar, 24 ) \ - SYSCALL_ENTRY( 0x01ad, NtUserShowWindow, 16 ) \ - SYSCALL_ENTRY( 0x01ae, NtUserShowWindowAsync, 16 ) \ - SYSCALL_ENTRY( 0x01af, NtUserSwitchDesktop, 8 ) \ - SYSCALL_ENTRY( 0x01b0, NtUserSystemParametersInfo, 32 ) \ - SYSCALL_ENTRY( 0x01b1, NtUserSystemParametersInfoForDpi, 40 ) \ - SYSCALL_ENTRY( 0x01b2, NtUserThunkedMenuInfo, 16 ) \ - SYSCALL_ENTRY( 0x01b3, NtUserThunkedMenuItemInfo, 48 ) \ - SYSCALL_ENTRY( 0x01b4, NtUserToUnicodeEx, 56 ) \ - SYSCALL_ENTRY( 0x01b5, NtUserTrackMouseEvent, 8 ) \ - SYSCALL_ENTRY( 0x01b6, NtUserTrackPopupMenuEx, 48 ) \ - SYSCALL_ENTRY( 0x01b7, NtUserTranslateAccelerator, 24 ) \ - SYSCALL_ENTRY( 0x01b8, NtUserTranslateMessage, 16 ) \ - SYSCALL_ENTRY( 0x01b9, NtUserUnhookWinEvent, 8 ) \ - SYSCALL_ENTRY( 0x01ba, NtUserUnhookWindowsHook, 16 ) \ - SYSCALL_ENTRY( 0x01bb, NtUserUnhookWindowsHookEx, 8 ) \ - SYSCALL_ENTRY( 0x01bc, NtUserUnregisterClass, 24 ) \ - SYSCALL_ENTRY( 0x01bd, NtUserUnregisterHotKey, 16 ) \ - SYSCALL_ENTRY( 0x01be, NtUserUpdateInputContext, 24 ) \ - SYSCALL_ENTRY( 0x01bf, NtUserUpdateLayeredWindow, 80 ) \ - SYSCALL_ENTRY( 0x01c0, NtUserValidateRect, 16 ) \ - SYSCALL_ENTRY( 0x01c1, NtUserValidateRgn, 16 ) \ - SYSCALL_ENTRY( 0x01c2, NtUserVkKeyScanEx, 16 ) \ - SYSCALL_ENTRY( 0x01c3, NtUserWaitForInputIdle, 24 ) \ - SYSCALL_ENTRY( 0x01c4, NtUserWaitMessage, 0 ) \ - SYSCALL_ENTRY( 0x01c5, NtUserWindowFromDC, 8 ) \ - SYSCALL_ENTRY( 0x01c6, NtUserWindowFromPoint, 16 ) \ - SYSCALL_ENTRY( 0x01c7, __wine_get_file_outline_text_metric, 32 ) \ - SYSCALL_ENTRY( 0x01c8, __wine_get_icm_profile, 32 ) + SYSCALL_ENTRY( 0x017f, NtUserSetAdditionalForegroundBoostProcesses, 24 ) \ + SYSCALL_ENTRY( 0x0180, NtUserSetCapture, 8 ) \ + SYSCALL_ENTRY( 0x0181, NtUserSetCaretBlinkTime, 8 ) \ + SYSCALL_ENTRY( 0x0182, NtUserSetCaretPos, 16 ) \ + SYSCALL_ENTRY( 0x0183, NtUserSetClassLong, 32 ) \ + SYSCALL_ENTRY( 0x0184, NtUserSetClassLongPtr, 32 ) \ + SYSCALL_ENTRY( 0x0185, NtUserSetClassWord, 24 ) \ + SYSCALL_ENTRY( 0x0186, NtUserSetClipboardData, 24 ) \ + SYSCALL_ENTRY( 0x0187, NtUserSetClipboardViewer, 8 ) \ + SYSCALL_ENTRY( 0x0188, NtUserSetCursor, 8 ) \ + SYSCALL_ENTRY( 0x0189, NtUserSetCursorIconData, 32 ) \ + SYSCALL_ENTRY( 0x018a, NtUserSetCursorPos, 16 ) \ + SYSCALL_ENTRY( 0x018b, NtUserSetFocus, 8 ) \ + SYSCALL_ENTRY( 0x018c, NtUserSetInternalWindowPos, 32 ) \ + SYSCALL_ENTRY( 0x018d, NtUserSetKeyboardState, 8 ) \ + SYSCALL_ENTRY( 0x018e, NtUserSetLayeredWindowAttributes, 32 ) \ + SYSCALL_ENTRY( 0x018f, NtUserSetMenu, 16 ) \ + SYSCALL_ENTRY( 0x0190, NtUserSetMenuContextHelpId, 16 ) \ + SYSCALL_ENTRY( 0x0191, NtUserSetMenuDefaultItem, 24 ) \ + SYSCALL_ENTRY( 0x0192, NtUserSetObjectInformation, 32 ) \ + SYSCALL_ENTRY( 0x0193, NtUserSetParent, 16 ) \ + SYSCALL_ENTRY( 0x0194, NtUserSetProcessDefaultLayout, 8 ) \ + SYSCALL_ENTRY( 0x0195, NtUserSetProcessDpiAwarenessContext, 16 ) \ + SYSCALL_ENTRY( 0x0196, NtUserSetProcessWindowStation, 8 ) \ + SYSCALL_ENTRY( 0x0197, NtUserSetProgmanWindow, 8 ) \ + SYSCALL_ENTRY( 0x0198, NtUserSetProp, 24 ) \ + SYSCALL_ENTRY( 0x0199, NtUserSetScrollInfo, 32 ) \ + SYSCALL_ENTRY( 0x019a, NtUserSetShellWindowEx, 16 ) \ + SYSCALL_ENTRY( 0x019b, NtUserSetSysColors, 24 ) \ + SYSCALL_ENTRY( 0x019c, NtUserSetSystemMenu, 16 ) \ + SYSCALL_ENTRY( 0x019d, NtUserSetSystemTimer, 24 ) \ + SYSCALL_ENTRY( 0x019e, NtUserSetTaskmanWindow, 8 ) \ + SYSCALL_ENTRY( 0x019f, NtUserSetThreadDesktop, 8 ) \ + SYSCALL_ENTRY( 0x01a0, NtUserSetTimer, 40 ) \ + SYSCALL_ENTRY( 0x01a1, NtUserSetWinEventHook, 64 ) \ + SYSCALL_ENTRY( 0x01a2, NtUserSetWindowContextHelpId, 16 ) \ + SYSCALL_ENTRY( 0x01a3, NtUserSetWindowLong, 32 ) \ + SYSCALL_ENTRY( 0x01a4, NtUserSetWindowLongPtr, 32 ) \ + SYSCALL_ENTRY( 0x01a5, NtUserSetWindowPlacement, 16 ) \ + SYSCALL_ENTRY( 0x01a6, NtUserSetWindowPos, 56 ) \ + SYSCALL_ENTRY( 0x01a7, NtUserSetWindowRgn, 24 ) \ + SYSCALL_ENTRY( 0x01a8, NtUserSetWindowWord, 24 ) \ + SYSCALL_ENTRY( 0x01a9, NtUserSetWindowsHookEx, 48 ) \ + SYSCALL_ENTRY( 0x01aa, NtUserShowCaret, 8 ) \ + SYSCALL_ENTRY( 0x01ab, NtUserShowCursor, 8 ) \ + SYSCALL_ENTRY( 0x01ac, NtUserShowOwnedPopups, 16 ) \ + SYSCALL_ENTRY( 0x01ad, NtUserShowScrollBar, 24 ) \ + SYSCALL_ENTRY( 0x01ae, NtUserShowWindow, 16 ) \ + SYSCALL_ENTRY( 0x01af, NtUserShowWindowAsync, 16 ) \ + SYSCALL_ENTRY( 0x01b0, NtUserSwitchDesktop, 8 ) \ + SYSCALL_ENTRY( 0x01b1, NtUserSystemParametersInfo, 32 ) \ + SYSCALL_ENTRY( 0x01b2, NtUserSystemParametersInfoForDpi, 40 ) \ + SYSCALL_ENTRY( 0x01b3, NtUserThunkedMenuInfo, 16 ) \ + SYSCALL_ENTRY( 0x01b4, NtUserThunkedMenuItemInfo, 48 ) \ + SYSCALL_ENTRY( 0x01b5, NtUserToUnicodeEx, 56 ) \ + SYSCALL_ENTRY( 0x01b6, NtUserTrackMouseEvent, 8 ) \ + SYSCALL_ENTRY( 0x01b7, NtUserTrackPopupMenuEx, 48 ) \ + SYSCALL_ENTRY( 0x01b8, NtUserTranslateAccelerator, 24 ) \ + SYSCALL_ENTRY( 0x01b9, NtUserTranslateMessage, 16 ) \ + SYSCALL_ENTRY( 0x01ba, NtUserUnhookWinEvent, 8 ) \ + SYSCALL_ENTRY( 0x01bb, NtUserUnhookWindowsHook, 16 ) \ + SYSCALL_ENTRY( 0x01bc, NtUserUnhookWindowsHookEx, 8 ) \ + SYSCALL_ENTRY( 0x01bd, NtUserUnregisterClass, 24 ) \ + SYSCALL_ENTRY( 0x01be, NtUserUnregisterHotKey, 16 ) \ + SYSCALL_ENTRY( 0x01bf, NtUserUpdateInputContext, 24 ) \ + SYSCALL_ENTRY( 0x01c0, NtUserUpdateLayeredWindow, 80 ) \ + SYSCALL_ENTRY( 0x01c1, NtUserValidateRect, 16 ) \ + SYSCALL_ENTRY( 0x01c2, NtUserValidateRgn, 16 ) \ + SYSCALL_ENTRY( 0x01c3, NtUserVkKeyScanEx, 16 ) \ + SYSCALL_ENTRY( 0x01c4, NtUserWaitForInputIdle, 24 ) \ + SYSCALL_ENTRY( 0x01c5, NtUserWaitMessage, 0 ) \ + SYSCALL_ENTRY( 0x01c6, NtUserWindowFromDC, 8 ) \ + SYSCALL_ENTRY( 0x01c7, NtUserWindowFromPoint, 16 ) \ + SYSCALL_ENTRY( 0x01c8, __wine_get_file_outline_text_metric, 32 ) \ + SYSCALL_ENTRY( 0x01c9, __wine_get_icm_profile, 32 ) diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index a6763331819..180649b5b09 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -1330,7 +1330,7 @@ @ stub NtUserSetActivationFilter @ stub NtUserSetActiveProcessForMonitor @ stdcall -syscall NtUserSetActiveWindow(long) -@ stub NtUserSetAdditionalForegroundBoostProcesses +@ stdcall -syscall NtUserSetAdditionalForegroundBoostProcesses(ptr long ptr) @ stub NtUserSetAppImeLevel @ stub NtUserSetAutoRotation @ stub NtUserSetBridgeWindowChild diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index 39637fac51d..d38d25b7d8b 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -4166,6 +4166,14 @@ NTSTATUS WINAPI wow64_NtUserSetActiveWindow( UINT *args ) return HandleToUlong( NtUserSetActiveWindow( hwnd )); }
+NTSTATUS WINAPI wow64_NtUserSetAdditionalForegroundBoostProcesses( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + DWORD count = get_ulong( &args ); + HANDLE *array = get_ptr( &args ); + return NtUserSetAdditionalForegroundBoostProcesses( hwnd, count, array ); +} + NTSTATUS WINAPI wow64_NtUserSetCapture( UINT *args ) { HWND hwnd = get_handle( &args ); diff --git a/include/ntuser.h b/include/ntuser.h index 749a56f3c9e..e148ce17a1a 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -934,6 +934,7 @@ W32KAPI INT WINAPI NtUserScrollWindowEx( HWND hwnd, INT dx, INT dy, const RE W32KAPI HPALETTE WINAPI NtUserSelectPalette( HDC hdc, HPALETTE palette, WORD force_background ); W32KAPI UINT WINAPI NtUserSendInput( UINT count, INPUT *inputs, int size ); W32KAPI HWND WINAPI NtUserSetActiveWindow( HWND hwnd ); +W32KAPI BOOL WINAPI NtUserSetAdditionalForegroundBoostProcesses( HWND hwnd, DWORD count, HANDLE *array ); W32KAPI HWND WINAPI NtUserSetCapture( HWND hwnd ); W32KAPI BOOL WINAPI NtUserSetCaretBlinkTime( unsigned int time ); W32KAPI BOOL WINAPI NtUserSetCaretPos( INT x, INT y );