[Bug 47280] New: 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}WindowLongPtrW'

wine-bugs at winehq.org wine-bugs at winehq.org
Mon May 27 17:46:14 CDT 2019


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 at winehq.org
          Reporter: focht at 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/eb0b06b9cfdf28914100b468b68f7b30dadfa631

https://www.nirsoft.net/dll_information/windows8/ext-ms-win-ntuser-windowclass-l1-1-0_dll.html

https://www.geoffchappell.com/studies/windows/win32/apisetschema/history/sets62.htm
-> "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.microsoft.com/download/pr/17763.1.180914-1434.rs5_release_WindowsSDK.iso

$ 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

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list