https://bugs.winehq.org/show_bug.cgi?id=35390
Bug ID: 35390 Summary: Samsung_Magician_Setup_v4.0.exe fails to install Product: Wine Version: 1.7.8 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wmi&wbemprox Assignee: wine-bugs@winehq.org Reporter: vinschen@redhat.com Classification: Unclassified
Created attachment 47217 --> https://bugs.winehq.org/attachment.cgi?id=47217 debug output of Samsung_Magician_Setup_v4.0.exe
Trying to install the Samsung Magician (an SSD tool) fails to install. The first dialog asks for the installation language, which I keep on the default "English", the next dialog contains the following error message:
INSTALLATION CANNOT CONTINUE: "Windows Management Instrumentation" service is disabled. Please enable and try again.
I attached a file with a log created like this:
WINEDEBUG=+msi,+wbemprox,+wmiutils,+service,+seh,+tid wine Samsung_Magician_Setup_v4.0.exe >> foo.log 2>&1
If you need more input, I'm willing to provide it.
Thanks, Corinna
https://bugs.winehq.org/show_bug.cgi?id=35390
--- Comment #1 from Hans Leidekker hans@meelstraat.net --- Is that the full log? Is there a free download for this app?
https://bugs.winehq.org/show_bug.cgi?id=35390
--- Comment #2 from Austin English austinenglish@gmail.com --- There's 4.2.1 at http://www.samsung.com/us/support/owners/product/MZ-7PC064D/AM, but it installs fine for me in wine-1.7.10-191-g8953c74
https://bugs.winehq.org/show_bug.cgi?id=35390
vinschen@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID
--- Comment #3 from vinschen@redhat.com --- Yes, this was the full log. Version 4.0 is what is delivered with the SSDs. I wasn't aware that a new version is available. I tried to install 4.2.1 as well, and the installation worked fine. Just the application itself eventually crashes due to some unsupported ioctl's. This is with Fedora 20 wine 1.7.8-1.
Anyway, this has nothing to do anymore with WMI, so I close this bug report. Sorry for the noise.
Corinna
https://bugs.winehq.org/show_bug.cgi?id=35390
--- Comment #4 from Jerome Leclanche adys.wh@gmail.com --- Do you have a link to the 4.0 version? If the old version works on windows but not on wine this is still a valid bug.
https://bugs.winehq.org/show_bug.cgi?id=35390
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer Status|RESOLVED |REOPENED URL| |http://orange.micrologik.fr | |/Progs/SSD/Samsung_Magician | |_Setup_v4.0.exe CC| |focht@gmx.net Resolution|INVALID |--- Summary|Samsung_Magician_Setup_v4.0 |Samsung Magician v4.0 fails |.exe fails to install |to install | |(SWbemLocator.ConnectServer | |method dispargs are | |optional) Ever confirmed|0 |1
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hello folks,
I don't see a reason why this doesn't qualify for a valid bug :-) Fixing any kind of misbehaviour might improve the situation for other apps.
Found a download for v4.0 here: http://orange.micrologik.fr/Progs/SSD/Samsung_Magician_Setup_v4.0.exe
I ran the sub-installer with some parameters to shorten log/debugging a bit...
Relevant part of trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/users/focht/Temp/is-V24S5.tmp
$ WINEDEBUG=+tid,+seh,+relay,+wbemprox,+wbemdisp,+ole,+variant wine Samsung_Magician_Setup_v4.0.tmp /SL5="$10066,7905800,379904,Z:\home\focht\Downloads\Samsung_Magician_Setup_v4.0.exe"
log.txt 2>&1
... 0024:trace:wbemdisp:locator_Invoke 0x14cb28, 1, {00000000-0000-0000-0000-000000000000}, 2048, 3, 0x33f94c, 0x603210, 0x33f970, 0x33f968 0024:trace:ole:ITypeInfo_fnInvoke (0x1592c8)(0x14cb28,id=1,flags=0x00000003,0x33f94c,0x603210,0x33f970,0x33f968) 0024:trace:ole:dump_DispParms args=4 named args=0 0024:trace:ole:dump_DispParms args: 0024:trace:ole:dump_Variant 0x681d88->{VT_BSTR,(null)} 0024:trace:ole:dump_Variant 0x681d98->{VT_BSTR,(null)} 0024:trace:ole:dump_Variant 0x681da8->{VT_BSTR,L"root\CIMV2"} 0024:trace:ole:dump_Variant 0x681db8->{VT_BSTR,(null)} 0024:trace:ole:ITypeInfo_fnInvoke invoking: L"ConnectServer"(9) parm0: L"strServer" parm1: L"strNamespace" parm2: L"strUser" parm3: L"strPassword" parm4: L"strLocale" parm5: L"strAuthority" parm6: L"iSecurityFlags" parm7: L"objWbemNamedValueSet" parm8: L"objWbemServices" memid is 00000001 Param 0: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 1: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 2: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 3: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 4: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 5: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 6: tdesc.vartype 3 (VT_I4) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 7: tdesc.vartype 9 (VT_DISPATCH) u.paramdesc.wParamFlags PARAMFLAG_FIN u.paramdesc.lpex (nil) Param 8: tdesc.vartype 26 (ptr to ptr to VT_USERDEFINED ref = 7d0) u.paramdesc.wParamFlags PARAMFLAG_FOUT PARAMFLAG_FRETVAL u.paramdesc.lpex (nil) funckind: 1 (pure virtual) invkind: 1 (func) callconv: 4 (stdcall) oVft: 28 cParamsOpt: 0 wFlags: 0 elemdescFunc (return value type): tdesc.vartype 25 (VT_HRESULT) u.paramdesc.wParamFlags PARAMFLAGS_NONE u.paramdesc.lpex (nil) helpstring: (null) entry: invalid 0024:Call ntdll.RtlAllocateHeap(00110000,00000008,00000156) ret=7ecbeaa7 0024:Ret ntdll.RtlAllocateHeap() retval=0015b710 ret=7ecbeaa7 0024:trace:ole:ITypeInfo_fnAddRef (0x159658)->ref is 1 0024:trace:ole:ITypeLib2_fnAddRef (0x14c408) ref=2 0024:trace:ole:ITypeInfo_fnGetRefTypeInfo (0x1592c8) hreftype 0x07d0 loaded SUCCESS (0x159658) 0024:trace:ole:ITypeInfo_fnGetTypeAttr (0x159658) 0024:Call ntdll.RtlAllocateHeap(00110000,00000000,0000004c) ret=7ecbeb3c 0024:Ret ntdll.RtlAllocateHeap() retval=0015b870 ret=7ecbeb3c 0024:trace:ole:ITypeInfo_fnReleaseTypeAttr (0x159658)->(0x15b870) 0024:Call ntdll.RtlFreeHeap(00110000,00000000,0015b870) ret=7ecbebfd 0024:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7ecbebfd 0024:trace:ole:ITypeInfo_fnRelease (0x159658)->(0) 0024:trace:ole:ITypeLib2_fnRelease (0x14c408) ref=1 0024:trace:ole:ITypeInfo_fnInvoke changing args 0024:trace:ole:dump_Variant 0x681db8->{VT_BSTR,(null)} 0024:trace:ole:dump_Variant 0x681da8->{VT_BSTR,L"root\CIMV2"} 0024:trace:ole:dump_Variant 0x681d98->{VT_BSTR,(null)} 0024:trace:ole:dump_Variant 0x681d88->{VT_BSTR,(null)} 0024:Call ntdll.RtlFreeHeap(00110000,00000000,0015b710) ret=7ecbebfd 0024:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7ecbebfd 0024:trace:ole:ITypeInfo_fnInvoke -- 0x8002000e 0024:trace:ole:ITypeInfo_fnRelease (0x1592c8)->(4294967295) 0024:Call KERNEL32.FormatMessageW(00003200,00000000,8002000e,00000000,0033f6f8,00000100,00000000) ret=00410e20 0024:Ret KERNEL32.FormatMessageW() retval=00000000 ret=00410e20 0024:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0033f8e4) ret=0049efd3 0024:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b83a913 ip=7b83a913 tid=0024 0024:trace:seh:raise_exception info[0]=0049efd3 0024:trace:seh:raise_exception info[1]=0065e530 0024:trace:seh:raise_exception info[2]=8002000e 0024:trace:seh:raise_exception info[3]=00000000 0024:trace:seh:raise_exception info[4]=00000000 0024:trace:seh:raise_exception info[5]=0033f994 0024:trace:seh:raise_exception info[6]=0033f900 ... 0024:Call user32.MessageBoxW(00010092,006142fc L"INSTALLATION CANNOT CONTINUE: ''Windows Management Instrumentation'' service is disabled. Please enable and try again.",0065a13c L"Setup",00000040) ret=0047c3ce --- snip ---
The installer only passes four disp args with invoke call.
This is allowed because all '[in]' arguments for SWbemLocator.ConnectServer() method are also '[optional]'.
MSDN: http://msdn.microsoft.com/en-us/library/aa393720%28v=vs.85%29.aspx
Source: http://source.winehq.org/git/wine.git/blob/686de978c002a20964724c3586c207015...
--- snip --- 88 [ id(1) ] 89 HRESULT ConnectServer( 90 [in] BSTR strServer, 91 [in] BSTR strNamespace, 92 [in] BSTR strUser, 93 [in] BSTR strPassword, 94 [in] BSTR strLocale, 95 [in] BSTR strAuthority, 96 [in] long iSecurityFlags, 97 [in] IDispatch *objWbemNamedValueSet, 98 [out, retval] ISWbemServices **objWbemServices); --- snip ---
$ sha1sum Samsung_Magician_Setup_v4.0.exe e7335e889eb6868a6407a827bb4e0a6f6e1b4c50 Samsung_Magician_Setup_v4.0.exe
$ du -sh Samsung_Magician_Setup_v4.0.exe 8.0M Samsung_Magician_Setup_v4.0.exe
$ wine --version wine-1.7.10-428-g444c2b2
Regards
https://bugs.winehq.org/show_bug.cgi?id=35390
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |NEW
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
with commit http://source.winehq.org/git/wine.git/commitdiff/a8a753b49a65fd3938cf1582066... ("wbemdisp: Specify default value for method arguments.") it now goes a bit further but still fails during invocation.
--- snip --- ... 0026:trace:ole:ITypeInfo_fnInvoke invoking: L"ConnectServer"(9) parm0: L"strServer" parm1: L"strNamespace" parm2: L"strUser" parm3: L"strPassword" parm4: L"strLocale" parm5: L"strAuthority" parm6: L"iSecurityFlags" parm7: L"objWbemNamedValueSet" parm8: L"objWbemServices" memid is 00000001 Param 0: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT u.paramdesc.lpex 0x15b4b8 Param 1: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT u.paramdesc.lpex 0x15b4d0 Param 2: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT u.paramdesc.lpex 0x15b4e8 Param 3: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT u.paramdesc.lpex 0x15b500 Param 4: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT u.paramdesc.lpex 0x15b518 Param 5: tdesc.vartype 8 (VT_BSTR) u.paramdesc.wParamFlags PARAMFLAG_FIN PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT u.paramdesc.lpex 0x15b530 Param 6: tdesc.vartype 3 (VT_I4) u.paramdesc.wParamFlags PARAMFLAG_FIN PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT u.paramdesc.lpex 0x15b548 Param 7: tdesc.vartype 9 (VT_DISPATCH) u.paramdesc.wParamFlags PARAMFLAG_FIN PARAMFLAG_FOPT PARAMFLAG_FHASDEFAULT u.paramdesc.lpex 0x15b560 Param 8: tdesc.vartype 26 (ptr to ptr to VT_USERDEFINED ref = 7d0) u.paramdesc.wParamFlags PARAMFLAG_FOUT PARAMFLAG_FRETVAL u.paramdesc.lpex (nil) funckind: 1 (pure virtual) invkind: 1 (func) callconv: 4 (stdcall) oVft: 28 cParamsOpt: 0 wFlags: 0 elemdescFunc (return value type): tdesc.vartype 25 (VT_HRESULT) u.paramdesc.wParamFlags PARAMFLAGS_NONE u.paramdesc.lpex (nil) helpstring: (null) entry: invalid 0026:Call ntdll.RtlAllocateHeap(00110000,00000008,00000156) ret=7ecbd21f 0026:Ret ntdll.RtlAllocateHeap() retval=0015ec68 ret=7ecbd21f 0026:trace:ole:ITypeInfo_fnAddRef (0x15b700)->ref is 1 0026:trace:ole:ITypeLib2_fnAddRef (0x145e98) ref=2 0026:trace:ole:ITypeInfo_fnGetRefTypeInfo (0x15b2e0) hreftype 0x07d0 loaded SUCCESS (0x15b700) 0026:trace:ole:ITypeInfo_fnGetTypeAttr (0x15b700) 0026:Call ntdll.RtlAllocateHeap(00110000,00000000,0000004c) ret=7ecbd2b4 0026:Ret ntdll.RtlAllocateHeap() retval=0015edc8 ret=7ecbd2b4 0026:trace:ole:ITypeInfo_fnReleaseTypeAttr (0x15b700)->(0x15edc8) 0026:Call ntdll.RtlFreeHeap(00110000,00000000,0015edc8) ret=7ecbd375 0026:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7ecbd375 0026:trace:ole:ITypeInfo_fnRelease (0x15b700)->(0) 0026:trace:ole:ITypeLib2_fnRelease (0x145e98) ref=1 0026:trace:ole:ITypeInfo_fnInvoke changing args 0026:trace:ole:dump_Variant 0x681db8->{VT_BSTR,(null)} 0026:trace:ole:dump_Variant 0x681da8->{VT_BSTR,L"root\CIMV2"} 0026:trace:ole:dump_Variant 0x681d98->{VT_BSTR,(null)} 0026:trace:ole:dump_Variant 0x681d88->{VT_BSTR,(null)} 0026:trace:variant:VariantCopy (0x15eca8->(VT_EMPTY),0x15b520->(VT_BSTR)) 0026:trace:variant:VariantClear (0x15eca8->(VT_EMPTY)) 0026:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=7ec9a0db 0026:Ret ntdll.RtlAllocateHeap() retval=0015edc8 ret=7ec9a0db 0026:trace:variant:VariantCopy (0x15ecb8->(VT_EMPTY),0x15b538->(VT_BSTR)) 0026:trace:variant:VariantClear (0x15ecb8->(VT_EMPTY)) 0026:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=7ec9a0db 0026:Ret ntdll.RtlAllocateHeap() retval=0015ede0 ret=7ec9a0db 0026:trace:variant:VariantCopy (0x15ecc8->(VT_EMPTY),0x15b550->(VT_I4)) 0026:trace:variant:VariantClear (0x15ecc8->(VT_EMPTY)) 0026:trace:variant:VariantCopy (0x15ecd8->(VT_EMPTY),0x15b568->(VT_PTR)) 0026:Call ntdll.RtlFreeHeap(00110000,00000000,0015ec68) ret=7ecbd375 0026:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7ecbd375 0026:trace:ole:ITypeInfo_fnInvoke -- 0x80020008 0026:trace:ole:ITypeInfo_fnRelease (0x15b2e0)->(4294967295) 0026:Call KERNEL32.FormatMessageW(00003200,00000000,80020008,00000000,0033f6f8,00000100,00000000) ret=00410e20 0026:Ret KERNEL32.FormatMessageW() retval=00000000 ret=00410e20 0026:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0033f8e4) ret=0049efd3 0026:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b83ab23 ip=7b83ab23 tid=0026 0026:trace:seh:raise_exception info[0]=0049efd3 0026:trace:seh:raise_exception info[1]=0065e530 0026:trace:seh:raise_exception info[2]=80020008 0026:trace:seh:raise_exception info[3]=00000000 0026:trace:seh:raise_exception info[4]=00000000 0026:trace:seh:raise_exception info[5]=0033f994 0026:trace:seh:raise_exception info[6]=0033f900 0026:trace:seh:raise_exception eax=7b826b89 ebx=7b8bb000 ecx=0033f900 edx=0033f860 esi=0033f8e4 edi=0033f8b0 0026:trace:seh:raise_exception ebp=0033f888 esp=0033f824 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200283 --- snip ---
--- snip --- [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet, --- snip ---
--- snip --- Wine-dbg> l else if (wParamFlags & PARAMFLAG_FOPT) { VARIANTARG *arg; arg = prgpvarg[i] = &rgvarg[i]; if (wParamFlags & PARAMFLAG_FHASDEFAULT) { hres = VariantCopy(arg, &func_desc->lprgelemdescParam[i].u.paramdesc.pparamdescex->varDefaultValue); if (FAILED(hres)) break; } ... Wine-dbg>p *func_desc->lprgelemdescParam[i].u.paramdesc.pparamdescex
{cBytes=0x18, varDefaultValue={n1={n2={vt=0x1a, wReserved1=0, wReserved2=0, wReserved3=0, n3={cVal=0, uiVal=0, ulVal=0, intVal=0, uintVal=0, bVal=0, iVal=0, lVal=0, fltVal=0.000000, dblVal=0.000000, boolVal=0, scode=0, date=0.000000, bstrVal=0x0(nil), cyVal={s={Lo=0, Hi=0}, int64=0}, punkVal=(nil), pdispVal=(nil), parray=(nil), llVal=0, ullVal=0, pcVal=0x0(nil), puiVal=0x0(nil), pulVal=0x0(nil), pintVal=0x0(nil), puintVal=0x0(nil), pbVal=0x0(nil), piVal=0x0(nil), plVal=0x0(nil), pfltVal=0x0(nil), pdblVal=0x0(nil), pboolVal=0x0(nil), pscode=0x0(nil), pdate=0x0(nil), pbstrVal=(nil), pvarVal=(nil), byref=0x0(nil), pcyVal=(nil), pdecVal=(nil), ppunkVal=(nil), ppdispVal=(nil), pparray=(nil), pllVal=0x0(nil), pullVal=0x0(nil), ... --- snip ---
vt=0x1a -> VT_PTR
I tried:
[in, defaultvalue((IDispatch*)NULL)] IDispatch* foo [in, defaultvalue(NULL)] IDispatch* foo [in, defaultvalue((IDispatch*)0) IDispatch* foo
and it still ended up being VT_PTR instead of VARIANT(VT_DISPATCH, 0).
$ wine --version wine-1.7.14-52-g31faed5
Regards
https://bugs.winehq.org/show_bug.cgi?id=35390
--- Comment #7 from Nikolay Sivov bunglehead@gmail.com --- So next thing to check is vartype of default value for this parameter in native typelib. If it's VT_DISPATCH|VT_BYREF, unlikely I think cause only NULL value makes sense as a default, then widl is to blame, if it's stored at VT_PTR type we need ITypeInfo code to deal with that. It's also possible that both parts are broken.
https://bugs.winehq.org/show_bug.cgi?id=35390
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |a8a753b49a65fd3938cf1582066 | |cfe15f1803d46 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #8 from Anastasius Focht focht@gmx.net --- Hello folks,
I opened a new bug for the next problem: bug 35778 (my comment #6 belongs there).
Regards
https://bugs.winehq.org/show_bug.cgi?id=35390
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.15.
https://bugs.winehq.org/show_bug.cgi?id=35390
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://orange.micrologik.fr |https://web.archive.org/web |/Progs/SSD/Samsung_Magician |/20210201183347/https://dow |_Setup_v4.0.exe |nloadcenter.samsung.com/con | |tent/SW/201302/201302051428 | |58776/Samsung_Magician_v4.0 | |.exe