https://bugs.winehq.org/show_bug.cgi?id=44469
Bug ID: 44469 Summary: Windows 10 DISM pkgmgr.exe crashes due to multiple api-ms-win-crt-private-l1-1-0.dll._o__xxx stubs/forwards to 'ucrtbase' missing (added with Windows 10 Version 1507 OS build 10586) Product: Wine Version: 3.1 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: api-ms-win-* Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
continuation of bug 44430
Steps to reproduce
--- snip --- # clean WINEPREFIX
$ winetricks -q dotnet452 corefonts $ winetricks -q win10
$ wine adksetup.exe /features OptionId.DeploymentTools
$ pwd /home/focht/.wine/drive_c/Program Files/Windows Kits/10/Assessment and Deployment Kit/Deployment Tools/x86/DISM
$ wine ./pkgmgr.exe ... wine: Call from 0x7bc62a40 to unimplemented function api-ms-win-crt-private-l1-1-0.dll._o__set_app_type, aborting wine: Call from 0x7bc62a40 to unimplemented function api-ms-win-crt-private-l1-1-0.dll._o__seh_filter_exe, aborting --- snip ---
The unresolved imports:
--- snip --- $ WINEDEBUG=warn+module wine ./pkgmgr.exe 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__exit imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x340000 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__get_initial_wide_environment imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x34000f 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__initialize_wide_environment imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x34001e 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__seh_filter_exe imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x34002d 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__set_app_type imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x34003c 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__set_fmode imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x34004b 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o_exit imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x34005a 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__crt_atexit imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x340069 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__controlfp_s imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x340078 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__configthreadlocale imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x340087 01e4:warn:module:import_dll No implementation for api-ms-win-crt-private-l1-1-0.dll._o__cexit imported from L"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\pkgmgr.exe", setting to 0x340096 --- snip ---
api-ms-win-crt-private-l1-1-0.dll._o__cexit api-ms-win-crt-private-l1-1-0.dll._o__configthreadlocale api-ms-win-crt-private-l1-1-0.dll._o__controlfp_s api-ms-win-crt-private-l1-1-0.dll._o__crt_atexit api-ms-win-crt-private-l1-1-0.dll._o_exit api-ms-win-crt-private-l1-1-0.dll._o__exit api-ms-win-crt-private-l1-1-0.dll._o__get_initial_wide_environment api-ms-win-crt-private-l1-1-0.dll._o__initialize_wide_environment api-ms-win-crt-private-l1-1-0.dll._o__seh_filter_exe api-ms-win-crt-private-l1-1-0.dll._o__set_app_type api-ms-win-crt-private-l1-1-0.dll._o__set_fmode
It's unfortunate that the initial commit which adds 'api-ms-win-crt-private-l1-1-0.dll' doesn't tell which exact Windows version *and* build and/or Windows SDK version was used to generate the export list.
https://source.winehq.org/git/wine.git/commitdiff/a3e183572a7621635025fed02c...
Also no Bugzilla ticket found related to the addition:
https://bugs.winehq.org/buglist.cgi?bug_status=bug_status%3DCLOSED&f1=cf...
After some archaeology I found it mentioned in the mailing list:
https://www.winehq.org/pipermail/wine-patches/2015-August/
https://www.winehq.org/pipermail/wine-patches/2015-August/141297.html ("[PATCH v2 01/22] ucrtbase: Add the new universal CRT DLL.") ... https://www.winehq.org/pipermail/wine-patches/2015-August/141306.html ("[PATCH v2 16/22] api-ms-win-crt-private-l1-1-0: Add stub dll.")
--- quote --- ... Since MSVC 2015/Windows 10, the C runtime has now been split into two parts, ucrtbase, which is the generic C runtime which is now considered a system component (in Windows 10, and as an extra installed runtime component for older Windows version), and vcruntimeX which is specific to the compiler version.
This uses the msvcrt implementation, just like the earlier msvcr* DLLs.
Functions with names that existed in msvcr120 are hooked up so far. --- This is updated, based on ucrtbase.dll from Windows 10 RTM. --- --- quote ---
https://technet.microsoft.com/en-us/en-en/windows/release-info.aspx
Windows 10 RTM -> Version 1507 (RTM) -> my guess it's OS build 10240.16xxx where the initial dump information was generated from.
https://www.opendll.com/index.php?file-download=api-ms-win-crt-private-l1-1-...
-> 10.0.10586.212 shows these imports/exports so it's likely the API set was updated in Windows 10 Version 1511 (OS build 10586)
That's why I like have tickets (preferably with exact information on origin) when new (stub) dlls are added to avoid wasting time for this kind of research.
$ sha1sum adksetup.exe 92892e71b083fc46c907b657c300ffc32608d223 adksetup.exe
$ du -sh adksetup.exe 1.7M adksetup.exe
$ wine --version wine-3.0-180-g85635db0ea
Regards