This MR adds support for creating file mapping objects backed by large pages on Linux, by making the following changes:
## wineserver
* On Linux, `create_temp_file` will first attempt to use memfds as the backing fd. If it fails, it'll return to the current codepath, creating a temporary file in either the server or config directory.
* The created memfd will be sealed against writes, if the caller requesting the appropriate page protection flags.
* This removes the requirement that FDs be only created on filesystems/directories that aren't `noexec`.
* In the server method `create_mapping` , if large pages have been requested by the caller, hold that the calling thread's token holds `SeLockMemoryPrivilege` .
* Additionally, add `SeLockMemoryPrivilege` to the list of privileges enabled for the Administrator.
## ntdll
* Add `virtual_get_min_large_page_size` and its exported wrapper wine_unix_get_min_large_page_size
### `kernelbase.dll`
*
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5769
--
v2: mshtml: Move IDispatchEx forwarding implementation to outer window object.
mshtml: Use macro for window object IDispatch functions implementation.
mshtml: Use DispatchEx vtbl for all window properties.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5766
Observable issue before this change is that text extent does not match size
of ExtTextOutW() output. The fix is to shape text in similar way before measuring.
Individual extents returned in this case are arguably useless, they do not
match visual output order, and only give an idea on how much each input character
contributed to overall width. To match input character order all intra-line and
intra-item reordering is disabled.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5757
The first commits add some test infrastructure to be able check raw input keyboard events, along with a few tests relevant to the code paths in this MR. This MR also introduces support for checking async key state in tests.
For some fixes it was difficult to express the current Wine behavior with TODOs in the expected sequence, so tests for these were added along with the fix.
--
v3: server: Set VK_PACKET async state in raw input legacy mode.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5754
The first commit adds some test infrastructure to be able check raw input keyboard events, along with a few tests relevant to the code paths in this MR.
The second commit fixes raw input behavior with unicode inputs, and adds regression tests. Note that it was difficult to express the current Wine behavior with TODOs in the expected sequence, that's why I didn't introduce these regression tests independently.
--
v2: server: Set VK_PACKET async state in raw input legacy mode.
user32: Check async key state in raw nolegacy tests.
server: Don't send raw input events for unicode inputs.
server: Apply modifier vkey transformations regardless of unicode flag.
server: Use right-left modifier vkeys for hooks.
user32: Add tests for raw keyboard messages.
user32: Add more test for unicode input with vkey.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5754