Wine currently runs all processes with an elevated administrator token. As
described in bug 40613, some applications refuse to be run with such a token.
This patch set addresses the situation by creating all processes with an
unelevated adminstrator token by default. When a process attempts to elevate
itself through one of several mechanisms—which would show a UAC prompt on
Windows—we instead silently elevate the process, as if the user had granted
access through the UAC prompt.
This works for almost all applications. I have found only one application which
didn't get the memo, and actually asks the user to right click and run as
administrator, namely PaintTool SAI. Fortunately, 063a377df4f, combined with the
shell32 patch in this series, allows a Wine user to elevate that process by
opening explorer.exe, right-clicking, and selecting Run as Administrator, just
like on Windows.
This patch series has been in Wine-Staging for about three years. This was
partly to try to find and fix all the different creative ways that applications
tried to elevate themselves, but mostly because I needed to find a solution for
PaintTool SAI, and never quite got the time to implement run-as-administrator in
shell32.
EDIT: Now only includes the patches elevating processes through specific methods (runas, msi).
--
v3:
https://gitlab.winehq.org/wine/wine/-/merge_requests/5118
I think the behaviour of SetWindowPos() in this case is partially explained by the fact that topmost state is not strictly applicable to child windows and so Windows denies such requests. Child window can still end up with WS_EX_TOPMOST style if it was set at window creation (doesn't work this way in Wine now) or, e. g., like in the test added in the patch.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=20190
Also fixes game load dialog in Indiana Jones and the Infernal Machine.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/667
Termios2 is a modern Linux feature thats allows usage of any custom baudrate instead of hardcoded values from the 1970's.
Also, this patch improves compatibility with the win32 api, because windows allow any custom baudrates by design.
Example software for which this patch is needed: http://www.vi-soft.com.ua/index_e.htm
This software for reading/writing/patch fullflash of Siemens mobile phones, where serial speed is important.
V-Klay uses 1600000 baudrate and perfectly works on Linux with termios2 and Prolific PL2303.
--
v5: ntdll/unix: Use termios2 for serial when possible.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5211
Termios2 is a modern Linux feature thats allows usage of any custom baudrate instead of hardcoded values from the 1970's.
Also, this patch improves compatibility with the win32 api, because windows allow any custom baudrates by design.
Example software for which this patch is needed: http://www.vi-soft.com.ua/index_e.htm
This software for reading/writing/patch fullflash of Siemens mobile phones, where serial speed is important.
V-Klay uses 1600000 baudrate and perfectly works on Linux with termios2 and Prolific PL2303.
--
v4: ntdll/unix: Use termios2 for serial when possible.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5211
Normally Cyberpunk 2077 spawns #cpu_threads of dispatcher threads.
However with Freebsd, since create_logical_proc_info was a stub,
the game would instead spawn a single dispatcher thread, causing
the game to just crawl.
Working around the issue by adding a barebone implementation of
create_logical_proc_info for FreeBSD so that the game would at
least get a thread count through ntdll.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5213
Termios2 is a modern Linux feature thats allows usage of any custom baudrate instead of hardcoded values from the 1970's.
Also, this patch improves compatibility with the win32 api, because windows allow any custom baudrates by design.
Example software for which this patch is needed: http://www.vi-soft.com.ua/index_e.htm
This software for reading/writing/patch fullflash of Siemens mobile phones, where serial speed is important.
V-Klay uses 1600000 baudrate and perfectly works on Linux with termios2 and Prolific PL2303.
--
v3: ntdll/unix: Fix building with -Werror when HAVE_ASM_TERMBITS_H is not set
https://gitlab.winehq.org/wine/wine/-/merge_requests/5211