Needed for native mfc42u.dll.
Signed-off-by: Mohamad Al-Jaf mohamadaljaf@gmail.com --- v7: Rebase. v8: Add entry to tools/make_specfiles. --- configure.ac | 1 + .../Makefile.in | 1 + .../api-ms-win-core-privateprofile-l1-1-0.spec | 14 ++++++++++++++ tools/make_specfiles | 1 + 4 files changed, 17 insertions(+) create mode 100644 dlls/api-ms-win-core-privateprofile-l1-1-0/Makefile.in create mode 100644 dlls/api-ms-win-core-privateprofile-l1-1-0/api-ms-win-core-privateprofile-l1-1-0.spec
diff --git a/configure.ac b/configure.ac index a51d5d44ee7..aa08b282688 100644 --- a/configure.ac +++ b/configure.ac @@ -2416,6 +2416,7 @@ WINE_CONFIG_MAKEFILE(dlls/api-ms-win-core-namedpipe-l1-2-0) WINE_CONFIG_MAKEFILE(dlls/api-ms-win-core-namespace-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/api-ms-win-core-normalization-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/api-ms-win-core-path-l1-1-0) +WINE_CONFIG_MAKEFILE(dlls/api-ms-win-core-privateprofile-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/api-ms-win-core-privateprofile-l1-1-1) WINE_CONFIG_MAKEFILE(dlls/api-ms-win-core-processenvironment-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/api-ms-win-core-processenvironment-l1-2-0) diff --git a/dlls/api-ms-win-core-privateprofile-l1-1-0/Makefile.in b/dlls/api-ms-win-core-privateprofile-l1-1-0/Makefile.in new file mode 100644 index 00000000000..c8b8ef84aef --- /dev/null +++ b/dlls/api-ms-win-core-privateprofile-l1-1-0/Makefile.in @@ -0,0 +1 @@ +MODULE = api-ms-win-core-privateprofile-l1-1-0.dll diff --git a/dlls/api-ms-win-core-privateprofile-l1-1-0/api-ms-win-core-privateprofile-l1-1-0.spec b/dlls/api-ms-win-core-privateprofile-l1-1-0/api-ms-win-core-privateprofile-l1-1-0.spec new file mode 100644 index 00000000000..c8153c3a296 --- /dev/null +++ b/dlls/api-ms-win-core-privateprofile-l1-1-0/api-ms-win-core-privateprofile-l1-1-0.spec @@ -0,0 +1,14 @@ +@ stdcall GetPrivateProfileIntA(str str long str) kernel32.GetPrivateProfileIntA +@ stdcall GetPrivateProfileIntW(wstr wstr long wstr) kernel32.GetPrivateProfileIntW +@ stdcall GetPrivateProfileSectionW(wstr ptr long wstr) kernel32.GetPrivateProfileSectionW +@ stdcall GetPrivateProfileStringA(str str str ptr long str) kernel32.GetPrivateProfileStringA +@ stdcall GetPrivateProfileStringW(wstr wstr wstr ptr long wstr) kernel32.GetPrivateProfileStringW +@ stdcall GetProfileIntA(str str long) kernel32.GetProfileIntA +@ stdcall GetProfileIntW(wstr wstr long) kernel32.GetProfileIntW +@ stdcall GetProfileSectionA(str ptr long) kernel32.GetProfileSectionA +@ stdcall GetProfileSectionW(wstr ptr long) kernel32.GetProfileSectionW +@ stdcall GetProfileStringA(str str str ptr long) kernel32.GetProfileStringA +@ stdcall GetProfileStringW(wstr wstr wstr ptr long) kernel32.GetProfileStringW +@ stdcall WritePrivateProfileSectionA(str str str) kernel32.WritePrivateProfileSectionA +@ stdcall WritePrivateProfileStringA(str str str str) kernel32.WritePrivateProfileStringA +@ stdcall WritePrivateProfileStringW(wstr wstr wstr wstr) kernel32.WritePrivateProfileStringW diff --git a/tools/make_specfiles b/tools/make_specfiles index 8f83034f160..946705fa1de 100755 --- a/tools/make_specfiles +++ b/tools/make_specfiles @@ -272,6 +272,7 @@ my @dll_groups = "api-ms-win-core-namespace-l1-1-0", "api-ms-win-core-normalization-l1-1-0", "api-ms-win-core-path-l1-1-0", + "api-ms-win-core-privateprofile-l1-1-0", "api-ms-win-core-privateprofile-l1-1-1", "api-ms-win-core-processenvironment-l1-1-0", "api-ms-win-core-processenvironment-l1-2-0",
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51850 Signed-off-by: Mohamad Al-Jaf mohamadaljaf@gmail.com --- v7: Use LPVOID instead of void *.
Since it's a Windows function and since it's defined as LPVOID in StackManager.h, it's probably better to use the Windows API typedef. --- configure.ac | 1 + dlls/wdscore/Makefile.in | 3 ++ dlls/wdscore/main.c | 56 ++++++++++++++++++++++++++++ dlls/wdscore/tests/Makefile.in | 4 ++ dlls/wdscore/tests/main.c | 65 +++++++++++++++++++++++++++++++++ dlls/wdscore/wdscore.spec | 2 +- dlls/wdscore/wdscore_internal.h | 24 ++++++++++++ 7 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 dlls/wdscore/main.c create mode 100644 dlls/wdscore/tests/Makefile.in create mode 100644 dlls/wdscore/tests/main.c create mode 100644 dlls/wdscore/wdscore_internal.h
diff --git a/configure.ac b/configure.ac index aa08b282688..49481e054e7 100644 --- a/configure.ac +++ b/configure.ac @@ -3353,6 +3353,7 @@ WINE_CONFIG_MAKEFILE(dlls/wbemdisp/tests) WINE_CONFIG_MAKEFILE(dlls/wbemprox) WINE_CONFIG_MAKEFILE(dlls/wbemprox/tests) WINE_CONFIG_MAKEFILE(dlls/wdscore) +WINE_CONFIG_MAKEFILE(dlls/wdscore/tests) WINE_CONFIG_MAKEFILE(dlls/webservices) WINE_CONFIG_MAKEFILE(dlls/webservices/tests) WINE_CONFIG_MAKEFILE(dlls/websocket) diff --git a/dlls/wdscore/Makefile.in b/dlls/wdscore/Makefile.in index 20ba1d3b1c9..2020e72c7bb 100644 --- a/dlls/wdscore/Makefile.in +++ b/dlls/wdscore/Makefile.in @@ -1,3 +1,6 @@ MODULE = wdscore.dll
EXTRADLLFLAGS = -Wb,--prefer-native + +C_SRCS = \ + main.c diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c new file mode 100644 index 00000000000..0bbb3ec83f4 --- /dev/null +++ b/dlls/wdscore/main.c @@ -0,0 +1,56 @@ +/* + * Copyright 2022 Mohamad Al-Jaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" + +#include "wine/asm.h" +#include "wine/debug.h" + +#include "wdscore_internal.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wdscore); + +/*********************************************************************** + * CurrentIP (wdscore.@) + */ +#ifdef __i386__ +__ASM_GLOBAL_FUNC(CurrentIP, + "movl (%esp), %eax\n\t" + "ret" ) +#elif defined(__x86_64__) +__ASM_GLOBAL_FUNC(CurrentIP, + "movq (%rsp), %rax\n\t" + "ret" ) +#elif defined(__arm__) +__ASM_GLOBAL_FUNC(CurrentIP, + "mov r0, lr\n\t" + "bx lr" ) +#elif defined(__aarch64__) +__ASM_GLOBAL_FUNC(CurrentIP, + "mov x0, lr\n\t" + "ret" ) +#else +LPVOID CurrentIP(void) +{ + FIXME( "not implemented\n" ); + return NULL; +} +#endif diff --git a/dlls/wdscore/tests/Makefile.in b/dlls/wdscore/tests/Makefile.in new file mode 100644 index 00000000000..baf4adf23a1 --- /dev/null +++ b/dlls/wdscore/tests/Makefile.in @@ -0,0 +1,4 @@ +TESTDLL = wdscore.dll + +C_SRCS = \ + main.c diff --git a/dlls/wdscore/tests/main.c b/dlls/wdscore/tests/main.c new file mode 100644 index 00000000000..8c0b6c6a5a8 --- /dev/null +++ b/dlls/wdscore/tests/main.c @@ -0,0 +1,65 @@ +/* + * Unit test suite for wdscore + * + * Copyright 2022 Mohamad Al-Jaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + */ + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" + +#include "wine/test.h" + +static HMODULE dll; +static LPVOID (*pCurrentIP)(void); + +static BOOL init_function_pointers(void) +{ + dll = LoadLibraryA("wdscore.dll"); + + if (dll) + { + pCurrentIP = (void*)GetProcAddress(dll, "CurrentIP"); + return TRUE; + } + + return FALSE; +} + +static void test_CurrentIP(void) +{ + char *cur; + char *ret; + + cur = (char*)&test_CurrentIP; + ret = (char*)pCurrentIP(); + + ok(cur <= ret && ret < (cur + 0x100), "Address %p not in function starting at %p.\n", ret, cur); +} + +START_TEST(main) +{ + if (init_function_pointers()) + { + test_CurrentIP(); + FreeLibrary(dll); + } + else + skip("could not load wdscore.dll\n"); +} diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec index 15958b86aba..c292f65505b 100644 --- a/dlls/wdscore/wdscore.spec +++ b/dlls/wdscore/wdscore.spec @@ -71,7 +71,7 @@ @ stub ConstructPartialMsgIfW @ stub ConstructPartialMsgVA @ stub ConstructPartialMsgVW -@ stub CurrentIP +@ cdecl CurrentIP() @ stub EndMajorTask @ stub EndMinorTask @ stub GetMajorTask diff --git a/dlls/wdscore/wdscore_internal.h b/dlls/wdscore/wdscore_internal.h new file mode 100644 index 00000000000..66f5edb6ee3 --- /dev/null +++ b/dlls/wdscore/wdscore_internal.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Mohamad Al-Jaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WDSCORE_INTERNAL_H +#define __WDSCORE_INTERNAL_H + +LPVOID CurrentIP(void); + +#endif /* __WDSCORE_INTERNAL_H */
Hi,
Could someone please review this patchset and if possible, sign-off on it? -- Kind regards, Mohamad
Enables the Windows MediaCreationTool21H2 to run.
Signed-off-by: Mohamad Al-Jaf mohamadaljaf@gmail.com --- v7: Fix incorrect enum values. --- dlls/wdscore/main.c | 18 ++++++++++++++++++ dlls/wdscore/wdscore.spec | 4 ++-- dlls/wdscore/wdscore_internal.h | 11 +++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c index 0bbb3ec83f4..e7eaaaa42de 100644 --- a/dlls/wdscore/main.c +++ b/dlls/wdscore/main.c @@ -54,3 +54,21 @@ LPVOID CurrentIP(void) return NULL; } #endif + +/*********************************************************************** + * ConstructPartialMsgVA (wdscore.@) + */ +LPVOID WINAPI ConstructPartialMsgVA( WdsLogLevel level, LPCSTR msg, va_list args ) +{ + FIXME( "%u %s - stub\n", level, debugstr_a(msg) ); + return NULL; +} + +/*********************************************************************** + * ConstructPartialMsgVW (wdscore.@) + */ +LPVOID WINAPI ConstructPartialMsgVW( WdsLogLevel level, LPCWSTR msg, va_list args ) +{ + FIXME( "%u %s - stub\n", level, debugstr_w(msg) ); + return NULL; +} diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec index c292f65505b..86a3bf37797 100644 --- a/dlls/wdscore/wdscore.spec +++ b/dlls/wdscore/wdscore.spec @@ -69,8 +69,8 @@ #@ extern g_bEnableDiagnosticMode @ stub ConstructPartialMsgIfA @ stub ConstructPartialMsgIfW -@ stub ConstructPartialMsgVA -@ stub ConstructPartialMsgVW +@ stdcall ConstructPartialMsgVA(long str ptr) +@ stdcall ConstructPartialMsgVW(long wstr ptr) @ cdecl CurrentIP() @ stub EndMajorTask @ stub EndMinorTask diff --git a/dlls/wdscore/wdscore_internal.h b/dlls/wdscore/wdscore_internal.h index 66f5edb6ee3..e5f54a358a8 100644 --- a/dlls/wdscore/wdscore_internal.h +++ b/dlls/wdscore/wdscore_internal.h @@ -19,6 +19,17 @@ #ifndef __WDSCORE_INTERNAL_H #define __WDSCORE_INTERNAL_H
+typedef enum _WdsLogLevel { + WdsLogLevelAssert = 0x00000000, + WdsLogLevelFatalError = 0x01000000, + WdsLogLevelError = 0x02000000, + WdsLogLevelWarning = 0x03000000, + WdsLogLevelInfo = 0x04000000, + WdsLogLevelStatus = 0x05000000, + WdsLogLevelVerbose = 0x68000000, + WdsLogLevelTrace = 0x70000000 +} WdsLogLevel; + LPVOID CurrentIP(void);
#endif /* __WDSCORE_INTERNAL_H */
Hi,
I'm just wondering if WINELIB_NAME_AW is required for these functions? The header is internal so I'm not sure if it's appropriate here. What does it do exactly? Also, I saw past commits for similar AW functions and they did not include this declaration. But the Wine wiki says it needs a declaration. So I don't know if I should add it or not. -- Kind regards, Mohamad
Hello,
WINELIB_NAME_AW is only needed if the public API would have also a ConstructPartialMsgV macro. Which based on UNICODE being defined or not translates to either ConstructPartialMsgVW or ConstructPartialMsgVA. On Wine that would translate to ConstructPartialMsgV_must_be_suffixed_with_W_or_A_in_this_context to generate an error.
It's basically and old kludge by MS to make porting old ansi code to unicode easier.
bye michael
On 2/16/22 05:03, Mohamad Al-Jaf wrote:
Hi,
I'm just wondering if WINELIB_NAME_AW is required for these functions? The header is internal so I'm not sure if it's appropriate here. What does it do exactly? Also, I saw past commits for similar AW functions and they did not include this declaration. But the Wine wiki says it needs a declaration. So I don't know if I should add it or not. -- Kind regards, Mohamad
Hi Michael,
That makes sense, thanks for the explanation. It doesn't seem like there's a public API for this function nor dll for that matter so I won't add the macro.
-- Kind regards, Mohamad
On Wed, Feb 16, 2022 at 2:39 PM Michael Stefaniuc mstefani@winehq.org wrote:
Hello,
WINELIB_NAME_AW is only needed if the public API would have also a ConstructPartialMsgV macro. Which based on UNICODE being defined or not translates to either ConstructPartialMsgVW or ConstructPartialMsgVA. On Wine that would translate to ConstructPartialMsgV_must_be_suffixed_with_W_or_A_in_this_context to generate an error.
It's basically and old kludge by MS to make porting old ansi code to unicode easier.
bye michael
On 2/16/22 05:03, Mohamad Al-Jaf wrote:
Hi,
I'm just wondering if WINELIB_NAME_AW is required for these functions?
The
header is internal so I'm not sure if it's appropriate here. What does
it do
exactly? Also, I saw past commits for similar AW functions and they did
not
include this declaration. But the Wine wiki says it needs a declaration.
So I
don't know if I should add it or not.
Kind regards, Mohamad
Required by the Windows MediaCreationTool21H2.
Signed-off-by: Mohamad Al-Jaf mohamadaljaf@gmail.com --- v7: - Fix incorrect enum values. v8: - Fix whitespace error. - Enable compilation with long types. --- dlls/wdscore/main.c | 26 ++++++++++++++++++++++++++ dlls/wdscore/wdscore.spec | 4 ++-- dlls/wdscore/wdscore_internal.h | 27 +++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c index e7eaaaa42de..1e4b7aae3d3 100644 --- a/dlls/wdscore/main.c +++ b/dlls/wdscore/main.c @@ -72,3 +72,29 @@ LPVOID WINAPI ConstructPartialMsgVW( WdsLogLevel level, LPCWSTR msg, va_list arg FIXME( "%u %s - stub\n", level, debugstr_w(msg) ); return NULL; } + +/*********************************************************************** + * WdsSetupLogMessageA (wdscore.@) + */ +HRESULT WINAPI WdsSetupLogMessageA( LPVOID msg, WdsLogSource src, LPCSTR unknown1, LPCSTR unknown2, + ULONG unknown3, LPCSTR file, LPCSTR func, void *ip, + ULONG unknown4, void *unknown5, UINT unknown6 ) +{ + FIXME( "%p, %u, %s, %s, %lu, %s, %s, %p, %lu, %p, %u - stub\n", msg, src, debugstr_a(unknown1), + debugstr_a(unknown2), unknown3, debugstr_a(file), debugstr_a(func), ip, unknown4, + unknown5, unknown6 ); + return S_OK; +} + +/*********************************************************************** + * WdsSetupLogMessageW (wdscore.@) + */ +HRESULT WINAPI WdsSetupLogMessageW( LPVOID msg, WdsLogSource src, LPCWSTR unknown1, LPCWSTR unknown2, + ULONG unknown3, LPCWSTR file, LPCWSTR func, void *ip, + ULONG unknown4, void *unknown5, UINT unknown6 ) +{ + FIXME( "%p, %u, %s, %s, %lu, %s, %s, %p, %lu, %p, %u - stub\n", msg, src, debugstr_w(unknown1), + debugstr_w(unknown2), unknown3, debugstr_w(file), debugstr_w(func), ip, unknown4, + unknown5, unknown6 ); + return S_OK; +} diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec index 86a3bf37797..938f27b776c 100644 --- a/dlls/wdscore/wdscore.spec +++ b/dlls/wdscore/wdscore.spec @@ -150,8 +150,8 @@ @ stub WdsSetUILanguage @ stub WdsSetupLogDestroy @ stub WdsSetupLogInit -@ stub WdsSetLogMessageA -@ stub WdsSetLogMessageW +@ stdcall WdsSetupLogMessageA(ptr long str str long str str ptr long ptr long) +@ stdcall WdsSetupLogMessageW(ptr long wstr wstr long wstr wstr ptr long ptr long) @ stub WdsSubscribeEx @ stub WdsTerminate @ stub WdsUnlockExecutionGroup diff --git a/dlls/wdscore/wdscore_internal.h b/dlls/wdscore/wdscore_internal.h index e5f54a358a8..6b15b3da0da 100644 --- a/dlls/wdscore/wdscore_internal.h +++ b/dlls/wdscore/wdscore_internal.h @@ -30,6 +30,33 @@ typedef enum _WdsLogLevel { WdsLogLevelTrace = 0x70000000 } WdsLogLevel;
+typedef enum _WdsLogSource { + WdsLogSourceDPX = 0x10000, + WdsLogSourceCBS = 0x20000, + WdsLogSourceCSI = 0x18000, + WdsLogSourceSXS = 0x28000, + WdsLogSourceCMI = 0x30000, + WdsLogSourceDEPLOY = 0x40000, + WdsLogSourceDU = 0x50000, + WdsLogSourceIBS = 0x60000, + WdsLogSourceIBSLIB = 0x64000, + WdsLogSourceDIAG = 0x70000, + WdsLogSourceDIAGER = 0x74000, + WdsLogSourceMIG = 0x80000, + WdsLogSourceHWARE = 0x84000, + WdsLogSourceMIGUI = 0x88000, + WdsLogSourceUI = 0xA0000, + WdsLogSourceCONX = 0xA4000, + WdsLogSourceMOUPG = 0xA8000, + WdsLogSourceWDS = 0xB0000, + WdsLogSourceDISM = 0xB8000, + WdsLogSourcePANTHR = 0x90000, + WdsLogSourceWINPE = 0xC0000, + WdsLogSourceSP = 0xC8000, + WdsLogSourceLIB = 0xD0000, + WdsLogSourceTOOL = 0xE0000 +} WdsLogSource; + LPVOID CurrentIP(void);
#endif /* __WDSCORE_INTERNAL_H */
Signed-off-by: Mohamad Al-Jaf mohamadaljaf@gmail.com --- dlls/wdscore/wdscore.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec index 938f27b776c..c81c55e31d5 100644 --- a/dlls/wdscore/wdscore.spec +++ b/dlls/wdscore/wdscore.spec @@ -116,7 +116,7 @@ @ stub WdsGetBlackboardValue @ stub WdsGetCurrentExecutionGroup @ stub WdsGetSetupLog -@ stub WdsTempDir +@ stub WdsGetTempDir @ stub WdsInitialize @ stub WdsInitializeCallbackArray @ stub WdsInitializeDataBinary @@ -139,7 +139,7 @@ @ stub WdsPackCollection @ stub WdsPublish @ stub WdsPublishEx -@ stub WdsPublishImmediateAsynch +@ stub WdsPublishImmediateAsync @ stub WdsPublishImmediateEx @ stub WdsPublishOffline @ stub WdsSeqAlloc
The API set stub DLLs are gone now. You should instead add an apiset entry to dlls/apisetschema/apisetschema.spec.
Chip
On second thought, that shouldn't even be necessary, since there is already an entry for api-ms-win-core-privateprofile-l1-1-1, and apparently the last digit is ignored.
February 27, 2022 10:05 PM, "Chip Davis" cdavis@codeweavers.com wrote:
The API set stub DLLs are gone now. You should instead add an apiset entry to dlls/apisetschema/apisetschema.spec.
Chip
Chip
Hi Chip,
Thanks for the feedback. I'm not sure if it's necessary to add it or not. I haven't tested the latest wine version to confirm if the last digit is indeed ignored. Compiling new versions takes more than an hour on my computer, even with ccache. I built it in 2014 and I don't have a job at the moment. I'll let you know if it's needed when I do test it. -- Kind regards, Mohamad
Hi,
Using Wine 7.3, I'm getting the following errors:
0034:err:module:load_apiset_dll failed to load apiset: c0000482 003c:err:module:load_apiset_dll failed to load apiset: c0000482 0048:err:module:load_apiset_dll failed to load apiset: c0000482 0068:err:module:load_apiset_dll failed to load apiset: c0000482 0080:err:module:load_apiset_dll failed to load apiset: c0000482 0094:err:module:load_apiset_dll failed to load apiset: c0000482 00bc:err:module:load_apiset_dll failed to load apiset: c0000482 00d4:err:module:load_apiset_dll failed to load apiset: c0000482 0024:err:module:load_apiset_dll failed to load apiset: c0000482 00f8:err:module:load_apiset_dll failed to load apiset: c0000482 0100:err:module:load_apiset_dll failed to load apiset: c0000482 0100:err:module:import_dll Library api-ms-win-core-debug-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-errorhandling-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-file-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-file-l1-2-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-handle-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-libraryloader-l1-2-1.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-libraryloader-l1-2-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-localization-l1-2-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-registry-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-memory-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-processenvironment-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-processthreads-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-profile-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-string-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-synch-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-synch-l1-2-1.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-synch-l1-2-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-sysinfo-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-security-base-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library api-ms-win-core-com-l1-1-0.dll (which is needed by L"C:\windows\system32\mfc42u.dll") not found 0100:err:module:import_dll Library MFC42u.dll (which is needed by L"Z:\..\MediaCreationTool\MediaCreationTool21H2.exe") not found
Even creating a new WINEPREFIX, similar errors occur with Wine-Mono:
$ WINEPREFIX=~/.test winecfg wine: created the configuration directory '/home/../.test' 002c:err:module:load_apiset_dll failed to load apiset: c0000482 0090:err:module:load_apiset_dll failed to load apiset: c0000482 0090:err:module:import_dll Library api-ms-win-crt-heap-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:import_dll Library api-ms-win-crt-private-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:import_dll Library api-ms-win-crt-runtime-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:import_dll Library api-ms-win-crt-stdio-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:import_dll Library api-ms-win-crt-string-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:import_dll Library api-ms-win-crt-math-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:import_dll Library api-ms-win-crt-environment-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:import_dll Library api-ms-win-crt-time-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:import_dll Library api-ms-win-crt-locale-l1-1-0.dll (which is needed by L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe") not found 0090:err:module:LdrInitializeThunk Importing dlls for L"Z:\usr\share\wine\mono\wine-mono-7.1.1\support\installinf-x86.exe" failed, status c0000135
I'm assuming the Wine team is aware of this issue. I don't know if it's happening to me only, but I tried it twice, once with my custom wine build and again with the normal wine-staging 7.3, same problem. I'm using Arch and everything is up to date.
Also, I don't think a new apiset entry is needed. Minus the last digit, none of the above dlls are missing from the apisetschema. -- Kind regards, Mohamad