The Visual Studio 2022 installer needs to be able to lookup a valid
WinMD file for the 'Windows.Networking.Connectivity' namespace
in order for the installation to start.
A normal Windows installation contains lots of individual
'.winmd' files (e.g. 'Windows.Networking.winmd'), which we
cannot redistribute. Fortunately, Microsoft provides an open-source
project called 'windows-rs', which contains a combined 'Windows.winmd'
file that is explicitly MIT-licensed:
https://github.com/microsoft/windows-rs/blob/master/crates/libs/bindgen/def…
Make RoResolveNamespace resolve anything starting with 'Windows' by just
pointing to this giant file. A full implementation will require us to
actually walk the 'WinMetadata' directory (if the caller provides
a custom path) and parse the matched '.winmd' file. However, this
implementation is good enough for Visual Studio 2022
To actually run the vs2022 installer, a patch for
the SHELL_execute trailing-space bug https://bugs.winehq.org/show_bug.cgi?id=56940
is needed: https://gitlab.winehq.org/wine/wine/-/merge_requests/6079
--
v2: wintypes: Partially implement RoResolveNamespace and add 'Windows.winmd'
https://gitlab.winehq.org/wine/wine/-/merge_requests/6288
The message queue needs both an inproc sync, to wake inproc waits on a message and trigger a server request, and a server sync, for when the wait is only on the queue and should be optimized into a single server request.
It could be better to avoid a dedicated request to retrieve the queue inproc sync fd, for instance by sending an fd on thread init, but we can use this to duality to gradually introduce inproc syncs requests instead and avoid dead code (even though the code ultimately returns STATUS_NOT_IMPLEMENTED for now). We can change the way queue inproc sync fds are retrieved later on.
--
v3: ntdll: Check inproc sync handle access rights on wait.
server: Add a request to retrieve the inproc sync fds.
server: Create inproc sync events for message queues.
ntdll: Retrieve and cache an ntsync device on process init.
ntdll: Add stub functions for in-process synchronization.
ntdll: Add some traces to synchronization methods.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8445
Certain games have started using the newest GameInput API and linking to GameInput.dll. Adding a stub library allows these games to launch and enables them to fall back to the DirectInput API if `GameInputCreate` returns an error.
Affected games: Le Mans Ultimate
--
v2: gameinput: Add stub dll.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8338
When using native xinput in WRC9, vccorlib is needed to make sure xinput doesn't crash.
--
v2: wincorlib: Add stub for platform_details_uninit_data.
wincorlib: Add stub for platform_details_init_data.
vccorlib140: Add stub dll.
wincorlib: Add stub dll.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3334
@alexhenrie @zhiyi
The corresponding Windows test demo is as follows:
[test_DrawTextExW.exe](/uploads/ff1eafc9c58ac03b598699a93136484c/test_DrawTextExW.exe)
[test_DrawTextExW.c](/uploads/a41719a33c2ee0e057c911933bf55180/test_DrawTextExW.c)
Signed-off-by: chenjiangyi <chenjiangyi(a)uniontech.com>
Change-Id: I64052ba8aa8161ad83c1811d642aedbe462ef5ea
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8177