Some programs try to import these functions from kernel32.dll instead of kernelbase.dll
From: Santino Mazza smazza@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)
From: Santino Mazza smazza@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)
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.
For a forward I have to do something like this, right? ``` @ stdcall CreateFileMappingFromApp(long ptr long int64 wstr) KERNELBASE.CreateFileMappingFromApp ```
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.
Interesting, I wonder if the other imports of MapViewOfFile* and CreateFileMapping* are forwards.