https://bugs.winehq.org/show_bug.cgi?id=47280
Bug ID: 47280 Summary: TopoEdit tool from Windows 10 SDK (10.0.17763.x) crashes on unimplemented function 'ext-ms-win-ntuser-windowclass-l1-1-0.dll.{Get,Set}Win dowLongPtrW' Product: Wine Version: 4.9 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: ext-ms-win-* Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
continuation of bug 46090
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x64
$ wine ./topoedit.exe ... 0036:err:module:DelayLoadFailureHook failed to delay load ext-ms-win-ntuser-windowclass-l1-1-0.dll.SetWindowLongPtrW wine: Call from 0x7b45323c to unimplemented function ext-ms-win-ntuser-windowclass-l1-1-0.dll.SetWindowLongPtrW, aborting wine: Unimplemented function ext-ms-win-ntuser-windowclass-l1-1-0.dll.SetWindowLongPtrW called at address 0x7b45323c (thread 0036), starting debugger... ... Backtrace: =>0 0x000000007b45323c RaiseException+0x6c(code=<is not available>, flags=<is not available>, nbargs=<is not available>, args=<is not available>) [/home/focht/projects/wine/mainline-src/dlls/kernel32/except.c:86] in kernel32 (0x000000000024e700) 1 0x000000007b47ff7a DelayLoadFailureHook+0xa9(name="ext-ms-win-ntuser-windowclass-l1-1-0.dll", function="SetWindowLongPtrW") [/home/focht/projects/wine/mainline-src/dlls/kernel32/module.c:1236] in kernel32 (0x000000000024e800) 2 0x000000007bc71e08 LdrResolveDelayLoadedAPI+0x207(base=0x180000000, desc=0x18003ae38, dllhook=(nil), syshook=0x7b47fed0) [/home/focht/projects/wine/mainline-src/dlls/ntdll/loader.c:3251] in ntdll (0x000000000024e9a0) 3 0x0000000180006421 EntryPoint+0xfffdb8e0() in tedutil (0x0000000180026630) 4 0x000000018002c02a EntryPoint+0x1000014e9() in tedutil (0x0000000180026630) 5 0x0000000180027d1b EntryPoint+0xffffd1da() in tedutil (0x0000000180026630) 6 0x00007f69080737f1 call_window_proc+0x60(hwnd=0x10142, msg=0x81, wp=0, lp=0x24f050, result=0x24eb98, arg=0x180027c80) [/home/focht/projects/wine/mainline-src/dlls/user32/winproc.c:219] in user32 (0x000000000024eb98) 7 0x00007f6908075c95 WINPROC_call_window+0x214(hwnd=0x10142, msg=0x81, wParam=0, lParam=0x24f050, result=0x24eb98, unicode=0x1) [/home/focht/projects/wine/mainline-src/dlls/user32/winproc.c:960] in user32 (0x00007fffffea8000) 8 0x00007f6908025ea3 call_window_proc+0x82(hwnd=0x10142, msg=0x81, wparam=0, lparam=0x24f050, unicode=0x1, same_thread=0x1) [/home/focht/projects/wine/mainline-src/dlls/user32/message.c:2225] in user32 (0x0000000000000001) 9 0x00007f690802d9b3 send_message+0x222(info=0x24ecc0, res_ptr=0x24ecb8, unicode=0x1) [/home/focht/projects/wine/mainline-src/dlls/user32/message.c:3288] in user32 (0x000000000024ecb8) 10 0x00007f690802dd98 SendMessageW+0xa7(hwnd=<is not available>, msg=<is not available>, wparam=<is not available>, lparam=<is not available>) [/home/focht/projects/wine/mainline-src/dlls/user32/message.c:3489] in user32 (0x000000000024edc0) 11 0x00007f6908068678 WIN_CreateWindowEx+0x1407(cs=0x24f050, className=<is not available>, module=<is not available>, unicode=<is not available>) [/home/focht/projects/wine/mainline-src/dlls/user32/win.c:1620] in user32 (0x0000000000010132) 12 0x00007f690805f76f CreateWindowExW+0xc6(exStyle=<is not available>, className=0x0(nil), windowName=<is not available>, style=<is not available>) [/home/focht/projects/wine/mainline-src/dlls/user32/win.c:1798] in user32 (0x000000000024f150) 13 0x000000018002775d EntryPoint+0xffffcc1c() in tedutil (0x0000000000252bd0) 14 0x00000001800275e9 EntryPoint+0xffffcaa8() in tedutil (0x0000000000252bd0) 15 0x00000001800278f7 EntryPoint+0xffffcdb6() in tedutil (0x000000000024f351) 16 0x000000014000a76c in topoedit (+0xa76b) (0x000000000024f351) 17 0x000000014000d262 in topoedit (+0xd261) (0x000000000024f3e0) 18 0x0000000140010208 in topoedit (+0x10207) (0x000000000024f480) 19 0x00007f69080737f1 call_window_proc+0x60(hwnd=0x1011e, msg=0x1, wp=0, lp=0x24fa40, result=0x24f588, arg=0x4d0000) [/home/focht/projects/wine/mainline-src/dlls/user32/winproc.c:219] in user32 (0x000000000024f588) 20 0x00007f6908075c95 WINPROC_call_window+0x214(hwnd=0x1011e, msg=0x1, wParam=0, lParam=0x24fa40, result=0x24f588, unicode=0x1) [/home/focht/projects/wine/mainline-src/dlls/user32/winproc.c:960] in user32 (0x00007fffffea8000) 21 0x00007f6908025ea3 call_window_proc+0x82(hwnd=0x1011e, msg=0x1, wparam=0, lparam=0x24fa40, unicode=0x1, same_thread=0x1) [/home/focht/projects/wine/mainline-src/dlls/user32/message.c:2225] in user32 (0x0000000000000001) 22 0x00007f690802d9b3 send_message+0x222(info=0x24f6b0, res_ptr=0x24f6a8, unicode=0x1) [/home/focht/projects/wine/mainline-src/dlls/user32/message.c:3288] in user32 (0x000000000024f6a8) 23 0x00007f690802dd98 SendMessageW+0xa7(hwnd=<is not available>, msg=<is not available>, wparam=<is not available>, lparam=<is not available>) [/home/focht/projects/wine/mainline-src/dlls/user32/message.c:3489] in user32 (0x000000000024f7b0) 24 0x00007f69080687a8 WIN_CreateWindowEx+0x1537(cs=0x24fa40, className=<is not available>, module=<is not available>, unicode=<is not available>) [/home/focht/projects/wine/mainline-src/dlls/user32/win.c:1657] in user32 (0x0000000000010020) 25 0x00007f690805f76f CreateWindowExW+0xc6(exStyle=<is not available>, className=0x0(nil), windowName=<is not available>, style=<is not available>) [/home/focht/projects/wine/mainline-src/dlls/user32/win.c:1798] in user32 (0x000000000024fb40) 26 0x0000000140003bf5 in topoedit (+0x3bf4) (0x00000000002520d0) 27 0x00000001400039cd in topoedit (+0x39cc) (0x00000000002520d0) 28 0x00000001400072cb in topoedit (+0x72ca) (0x00000000002520d0) 29 0x0000000140007464 in topoedit (+0x7463) (0x000000000024ffd0) 30 0x0000000140010432 in topoedit (+0x10431) (0x000000000024ffd0) 31 0x0000000140019689 in topoedit (+0x19688) (0x000000000024ffd0) 32 0x000000007b48d981 start_process+0x160(entry=0x140019730, peb=0x7fffffeaf000) [/home/focht/projects/wine/mainline-src/dlls/kernel32/process.c:1225] in kernel32 (0x000000000024ffd0) 0x000000007b45323c RaiseException+0x6c [/home/focht/projects/wine/mainline-src/dlls/kernel32/except.c:86] in kernel32: leaq 0xfffffffffffffff0(%rbp),%rsp 86 } Modules: Module Address Debug info Name (101 modules) PE 510000- 52d000 Deferred ext-ms-win-ntuser-windowclass-l1-1-0 PE 61780000- 617a0000 Deferred api-ms-win-core-com-l1-1-0 PE 61a00000- 61a1d000 Deferred ext-ms-win-shell-comctl32-init-l1-1-0 PE 61d80000- 61d9d000 Deferred api-ms-win-core-debug-l1-1-0 PE 61e40000- 61e5d000 Deferred api-ms-win-core-sysinfo-l1-1-0 PE 651c0000- 651dd000 Deferred api-ms-win-core-errorhandling-l1-1-0 PE 65240000- 6525f000 Deferred api-ms-win-core-processthreads-l1-1-0 PE 65540000- 6555d000 Deferred api-ms-win-core-delayload-l1-1-0 PE 65940000- 6595f000 Deferred api-ms-win-core-libraryloader-l1-2-0 PE 66580000- 6659f000 Deferred ext-ms-win-ntuser-window-l1-1-0 PE 66780000- 6679d000 Deferred api-ms-win-core-string-l1-1-0 PE 67340000- 6735f000 Deferred api-ms-win-core-delayload-l1-1-1 PE 67ec0000- 67edd000 Deferred ext-ms-win-rtcore-ntuser-cursor-l1-1-0 PE 68340000- 6835d000 Deferred api-ms-win-core-util-l1-1-0 PE 68740000- 6875f000 Deferred api-ms-win-core-registry-l1-1-0 PE 688c0000- 688dd000 Deferred api-ms-win-core-rtlsupport-l1-1-0 PE 69780000- 6979d000 Deferred api-ms-win-core-memory-l1-1-0 PE 69ac0000- 69add000 Deferred api-ms-win-core-profile-l1-1-0 PE 6a4c0000- 6a4dd000 Deferred api-ms-win-core-handle-l1-1-0 PE 6bcc0000- 6bcde000 Deferred api-ms-win-core-file-l1-1-0 PE 6c300000- 6c31f000 Deferred api-ms-win-core-heap-l1-1-0 PE 6c580000- 6c59d000 Deferred api-ms-win-core-synch-l1-1-0 PE 6c840000- 6c85d000 Deferred api-ms-win-core-string-obsolete-l1-1-0 PE 6e340000- 6e35f000 Deferred api-ms-win-core-synch-l1-2-0 PE 6ee80000- 6eea3000 Deferred atlthunk PE 6f640000- 6f65f000 Deferred api-ms-win-core-processthreads-l1-1-1 PE 6f880000- 6f89f000 Deferred api-ms-win-core-localization-l1-2-0 PE 70700000- 7071d000 Deferred api-ms-win-core-interlocked-l1-1-0 PE 70800000- 7081f000 Deferred api-ms-win-core-timezone-l1-1-0 PE 70e80000- 70e9d000 Deferred api-ms-win-core-string-l2-1-0 ELF 7b400000- 7b86c000 Dwarf kernel32<elf> -PE 7b420000- 7b86c000 \ kernel32 ELF 7bc00000- 7bd55000 Dwarf ntdll<elf> -PE 7bc20000- 7bd55000 \ ntdll ELF 7c000000- 7c004000 Deferred <wine-loader> PE 140000000- 140034000 Export topoedit PE 180000000- 18004a000 Export tedutil ... Threads: process tid prio (all id:s are in hex) ... 0000003c (D) C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\topoedit.exe 0000003e 0 0000003d 0 <== --- snip ---
Dumping the API set stub dll imports of the corresponding module:
--- snip --- $ winedump -j import tedutil.dll | sed -n '/ext-ms-win/,/^$/p'
grAttrs 00000001 offset 00039c78 ext-ms-win-gdi-dc-l1-2-0.dll Hint/Name Table: 0003aed0 Address Table: 00046018 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046018 19 SelectObject
grAttrs 00000001 offset 00039c98 ext-ms-win-gdi-draw-l1-1-0.dll Hint/Name Table: 0003aee0 Address Table: 00046028 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046028 4 CreateCompatibleBitmap 00046030 0 BitBlt 00046038 10 CreateSolidBrush 00046040 30 MoveToEx 00046048 29 LineTo
grAttrs 00000001 offset 00039cb8 ext-ms-win-gdi-draw-l1-1-1.dll Hint/Name Table: 0003af10 Address Table: 00046058 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046058 38 SetBkColor 00046060 9 CreatePen 00046068 37 Rectangle
grAttrs 00000001 offset 00039cd8 ext-ms-win-gdi-font-l1-1-0.dll Hint/Name Table: 0003af30 Address Table: 00046078 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046078 2 CreateFontIndirectW
grAttrs 00000001 offset 00039cf8 ext-ms-win-gdi-font-l1-1-1.dll Hint/Name Table: 0003af40 Address Table: 00046088 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046088 40 SetTextColor
grAttrs 00000001 offset 00039d18 ext-ms-win-gdi-dc-create-l1-1-0.dll Hint/Name Table: 0003aeb8 Address Table: 00046000 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046000 4 DeleteDC 00046008 0 CreateCompatibleDC
grAttrs 00000001 offset 00039d38 ext-ms-win-ntuser-dialogbox-l1-1-0.dll Hint/Name Table: 0003af50 Address Table: 00046098 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046098 25 MessageBoxW
grAttrs 00000001 offset 00039d58 ext-ms-win-ntuser-draw-l1-1-0.dll Hint/Name Table: 0003af60 Address Table: 000460a8 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 000460a8 4 EndPaint 000460b0 0 BeginPaint 000460b8 11 InvalidateRect
grAttrs 00000001 offset 00039d78 ext-ms-win-ntuser-gui-l1-1-0.dll Hint/Name Table: 0003af80 Address Table: 000460c8 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 000460c8 7 FillRect
grAttrs 00000001 offset 00039d98 ext-ms-win-ntuser-message-l1-1-0.dll Hint/Name Table: 0003af90 Address Table: 000460d8 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 000460d8 22 SendMessageW
grAttrs 00000001 offset 00039db8 ext-ms-win-ntuser-misc-l1-1-0.dll Hint/Name Table: 0003afa0 Address Table: 000460e8 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 000460e8 6 DrawTextW
grAttrs 00000001 offset 00039dd8 ext-ms-win-ntuser-misc-l1-2-0.dll Hint/Name Table: 0003afb0 Address Table: 000460f8 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 000460f8 48 ShowScrollBar 00046100 24 GetScrollInfo 00046108 44 SetScrollInfo
grAttrs 00000001 offset 00039df8 ext-ms-win-ntuser-window-l1-1-0.dll Hint/Name Table: 0003afd0 Address Table: 00046118 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046118 13 CreateWindowExW 00046120 15 DefWindowProcW 00046128 29 GetClientRect
grAttrs 00000001 offset 00039e18 ext-ms-win-ntuser-window-l1-1-4.dll Hint/Name Table: 0003aff0 Address Table: 00046138 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046138 8 CallWindowProcW
grAttrs 00000001 offset 00039e38 ext-ms-win-ntuser-windowclass-l1-1-0.dll Hint/Name Table: 0003b000 Address Table: 00046148 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046148 13 GetWindowLongPtrW 00046150 28 UnregisterClassA 00046158 26 SetWindowLongPtrW 00046160 18 RegisterClassExW 00046168 2 GetClassInfoExW
grAttrs 00000001 offset 00039e58 ext-ms-win-rtcore-gdi-object-l1-1-0.dll Hint/Name Table: 0003b030 Address Table: 00046178 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046178 0 DeleteObject
grAttrs 00000001 offset 00039e78 ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll Hint/Name Table: 0003b040 Address Table: 00046188 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) Thunk Ordn Name 00046188 6 LoadCursorW --- snip ---
--- snip --- $ winedump -j import tedutil.dll | sed -n '/ext-ms-win/,/^$/p' | sed -n 's/.*[[:xdigit:]]+[[:blank:]]+[[:digit:]]+[[:blank:]]+(.*)/\1/p' | xargs -n1 -I '{}' grep '.*[[:blank:]]{}' /home/focht/projects/wine/mainline-src/dlls/ext-ms-*/*.spec | egrep "(GetWindowLongPtrW|UnregisterClassA|SetWindowLongPtrW|RegisterClassExW|GetClassInfoExW)"
/home/focht/projects/wine/mainline-src/dlls/ext-ms-win-ntuser-windowclass-l1-1-0/ext-ms-win-ntuser-windowclass-l1-1-0.spec:@ stdcall UnregisterClassA(str long) user32.UnregisterClassA /home/focht/projects/wine/mainline-src/dlls/ext-ms-win-ntuser-windowclass-l1-1-1/ext-ms-win-ntuser-windowclass-l1-1-1.spec:@ stdcall UnregisterClassA(str long) user32.UnregisterClassA /home/focht/projects/wine/mainline-src/dlls/ext-ms-win-ntuser-windowclass-l1-1-0/ext-ms-win-ntuser-windowclass-l1-1-0.spec:@ stdcall RegisterClassExW(ptr) user32.RegisterClassExW /home/focht/projects/wine/mainline-src/dlls/ext-ms-win-ntuser-windowclass-l1-1-1/ext-ms-win-ntuser-windowclass-l1-1-1.spec:@ stdcall RegisterClassExW(ptr) user32.RegisterClassExW /home/focht/projects/wine/mainline-src/dlls/ext-ms-win-ntuser-windowclass-l1-1-0/ext-ms-win-ntuser-windowclass-l1-1-0.spec:@ stdcall GetClassInfoExW(long wstr ptr) user32.GetClassInfoExW /home/focht/projects/wine/mainline-src/dlls/ext-ms-win-ntuser-windowclass-l1-1-1/ext-ms-win-ntuser-windowclass-l1-1-1.spec:@ stdcall GetClassInfoExW(long wstr ptr) user32.GetClassInfoExW --- snip ---
Apparently 'GetWindowLongPtrW' and 'SetWindowLongPtrW' forwards are somehow missing.
Sadly there is no tracebility how the API set stub dll was actually generated (which exact WinSDK/Windows build).
https://source.winehq.org/git/wine.git/commitdiff/eb0b06b9cfdf28914100b468b6...
https://www.nirsoft.net/dll_information/windows8/ext-ms-win-ntuser-windowcla...
https://www.geoffchappell.com/studies/windows/win32/apisetschema/history/set... -> "discontinued in 10.0"
Stable link from Internet Archive in case MS takes old stuff offline:
https://web.archive.org/web/20190317015617/https://software-download.microso...
$ sha1sum 17763.1.180914-1434.rs5_release_WindowsSDK.iso e702b5e5f2597d01eaee1eb1be7a34b0da0b6211 17763.1.180914-1434.rs5_release_WindowsSDK.iso
$ du -sh 17763.1.180914-1434.rs5_release_WindowsSDK.iso 815M 17763.1.180914-1434.rs5_release_WindowsSDK.iso
$ wine --version wine-4.9-46-g3139727a97
Regards
https://bugs.winehq.org/show_bug.cgi?id=47280
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://software-download.m | |icrosoft.com/download/pr/17 | |763.1.180914-1434.rs5_relea | |se_WindowsSDK.iso Keywords| |download Summary|TopoEdit tool from Windows |TopoEdit tool from Windows |10 SDK (10.0.17763.x) |10 SDK (10.0.17763.x) |crashes on unimplemented |crashes on unimplemented |function |functions |'ext-ms-win-ntuser-windowcl |'ext-ms-win-ntuser-windowcl |ass-l1-1-0.dll.{Get,Set}Win |ass-l1-1-0.dll.{Get,Set}Win |dowLongPtrW' |dowLongPtrW'
https://bugs.winehq.org/show_bug.cgi?id=47280
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |82a0181a59a97bb8f8de7c0d602 | |3607c0100c314 Resolution|--- |FIXED Status|NEW |RESOLVED
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
this is fixed by commit https://source.winehq.org/git/wine.git/commitdiff/82a0181a59a97bb8f8de7c0d60... ("ext-ms-win-ntuser-windowclass-l1-1-0: Update spec file.")
Thanks Andrey
The app starts now and shows main user interface. There are various follow-up bugs related to incomplete Media Foundation implementation though (errors caused by stubs, crashes caused by unimplemented functions etc.).
$ wine --version wine-4.9-95-g6d05fae6f7
Regards
https://bugs.winehq.org/show_bug.cgi?id=47280
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #2 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.10.
https://bugs.winehq.org/show_bug.cgi?id=47280
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|https://software-download.m |https://web.archive.org/web |icrosoft.com/download/pr/17 |/20190317015617/https://sof |763.1.180914-1434.rs5_relea |tware-download.microsoft.co |se_WindowsSDK.iso |m/download/pr/17763.1.18091 | |4-1434.rs5_release_WindowsS | |DK.iso
https://bugs.winehq.org/show_bug.cgi?id=47280
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|ext-ms-win-* |apiset