[PATCH 0/2] MR1374: Import MapViewOfFileFromApp and CreateFileMappingFromApp into kernel32
Some programs try to import these functions from kernel32.dll instead of kernelbase.dll -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1374
From: Santino Mazza <smazza(a)codeweavers.com> --- dlls/kernel32/kernel32.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index a4bba1c6848..a6720678c4f 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -285,6 +285,7 @@ @ stdcall -import CreateFileA(str long long ptr long long long) @ stdcall CreateFileMappingA(long ptr long long long str) # @ stub CreateFileMappingNumaA +@ stdcall -import CreateFileMappingFromApp(long ptr long int64 wstr) @ stdcall -import CreateFileMappingNumaW(long ptr long long long wstr long) @ stdcall -import CreateFileMappingW(long ptr long long long wstr) @ stdcall -import CreateFileW(wstr long long ptr long long long) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1374
From: Santino Mazza <smazza(a)codeweavers.com> --- dlls/kernel32/kernel32.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index a6720678c4f..349c7d96c02 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -1095,6 +1095,7 @@ @ stdcall -import MapViewOfFile(long long long long long) @ stdcall -import MapViewOfFileEx(long long long long long ptr) @ stdcall -import MapViewOfFileExNuma(long long long long long ptr long) +@ stdcall -import MapViewOfFileFromApp(long long int64 long) @ stdcall Module32First(long ptr) @ stdcall Module32FirstW(long ptr) @ stdcall Module32Next(long ptr) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1374
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details: The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=126197 Your paranoid android. === debian11 (32 bit zh:CN report) === kernel32: comm: Timeout
On Windows these appear to be forwards, I think it's better to follow that. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1374#note_15950
For a forward I have to do something like this, right? ``` @ stdcall CreateFileMappingFromApp(long ptr long int64 wstr) KERNELBASE.CreateFileMappingFromApp ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1374#note_16014
Exactly, with lowercase target module name to match other entries. It's trivial to check if you need a forward or import by comparing procedure addresses. For forwards you'll get same address from GetProcAddress(kernel32) and GetProcAddress(kernelbase). For import they will be different. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1374#note_16015
Interesting, I wonder if the other imports of MapViewOfFile* and CreateFileMapping* are forwards. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1374#note_16017
participants (4)
-
Marvin -
Nikolay Sivov (@nsivov) -
Santino Mazza -
Santino Mazza (@tati1454)