https://bugs.winehq.org/show_bug.cgi?id=45600
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Component|-unknown |programs Resolution|--- |DUPLICATE Summary|Wargaming Game Center has |Wargaming Game Center has |Russian as default language |Russian as default language | |with WinVer > 'Windows XP' | |(initial 'explorer' process | |fails to register/run | |ShellWindows local COM | |server in new WINEPREFIX | |due to incomplete registry | |data)
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
finally confirming. Took some time to get down to the root cause.
The incorrect locale is just a late manifestation of Wine's broken bootstrapping procedure when creating a new WINEPREFIX -> bug 41713
The installer is InnoSetup based. Using the '/LOG' parameter to installer provides a bit more info.
--- snip --- $ wine ./total_war_arena_install_eu_bs39qvgzadby.exe /LOG ... 2020-01-24 22:04:28.000 Log opened. (Time zone: UTC+01:00) 2020-01-24 22:04:28.000 Setup version: Inno Setup version 5.5.4 (u) 2020-01-24 22:04:28.000 Original Setup EXE: Z:\home\focht\Downloads\total_war_arena_install_eu_bs39qvgzadby.exe 2020-01-24 22:04:28.000 Setup command line: /SL5="$4004A,3731534,423424,Z:\home\focht\Downloads\total_war_arena_install_eu_bs39qvgzadby.exe" /LOG 2020-01-24 22:04:28.000 Windows version: 6.1.7601 SP1 (NT platform: Yes) 2020-01-24 22:04:28.000 64-bit Windows: Yes 2020-01-24 22:04:28.000 Processor architecture: x64 2020-01-24 22:04:28.000 User privileges: Administrative 2020-01-24 22:04:28.001 64-bit install mode: No 2020-01-24 22:04:28.002 Created temporary directory: C:\users\focht\Temp\is-C1II2.tmp 2020-01-24 22:04:28.007 Windows version (RTL): 6.1.7601 2020-01-24 22:04:28.008 ElevationStats: Elevated=True; ElevationAllowed=False 2020-01-24 22:04:28.009 Failed to read file: "C:\ProgramData\Wargaming.net\GameCenter\data\wgc_id.dat" 2020-01-24 22:04:28.009 [DAT] Installation id: DAF94C7A78EE82DD121510CC37ECAF7016460DDF 2020-01-24 22:04:28.009 [SS] Stats initialized. Service url: http://wgusst-eu.wargaming.net/ 2020-01-24 22:04:28.009 [CMD] Registered command : elevation_req 2020-01-24 22:04:28.009 [CMD] Registered command : elevate 2020-01-24 22:04:28.009 [CMD] Registered command : select_dir ... 2020-01-24 22:05:00.185 WGC patch installation complete 2020-01-24 22:05:00.186 [NS] Sending stats request: 6 http://wgusst-eu.wargaming.net/wgc/client_installation_finished?installation_id=DAF94C7A78EE82DD121510CC37ECAF7016460DDF&vending_id=wgc_production&event_date=2020-01-24+22%3A05%3A00+%2B0100&session_id=53A8A24107D04EE194E9768DB6900CC0&event_sequence_number=5&tracking_id=1550543354421122302&product_version=18.09.00.3034&wgc_application_id=WGC.EU.PRODUCTION&preset_application_id=TWA.EU.PRODUCTION&installation_path=C%3A%5CProgramData%5CWargaming.net%5CGameCenter&transaction_id=D3F4E9CE70234B3FA45A4F0111CB8238 2020-01-24 22:05:00.186 Adding FW exceptions... 2020-01-24 22:05:00.225 FW operation process finished, code: 0 2020-01-24 22:05:00.225 WGC additional actions complete 2020-01-24 22:05:00.225 [SS] Wating for stats events to be finished 2020-01-24 22:05:00.237 [NS] Remove request: 6 2020-01-24 22:05:00.243 Starting the installation process. 2020-01-24 22:05:00.245 Setting permissions on directory: C:\ProgramData\Wargaming.net\GameCenter 2020-01-24 22:05:00.245 Creating directory: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Wargaming.net 2020-01-24 22:05:00.246 Setting permissions on directory: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Wargaming.net 2020-01-24 22:05:00.247 Installation process succeeded. 2020-01-24 22:05:00.253 Aborting ssPostInstall... 2020-01-24 22:05:00.308 Running WGC... 2020-01-24 22:05:00.326 [NS] Sending stats request: 7 http://wgusst-eu.wargaming.net/wgc/installer_error_occurred?installation_id=DAF94C7A78EE82DD121510CC37ECAF7016460DDF&vending_id=wgc_production&event_date=2020-01-24+22%3A05%3A00+%2B0100&session_id=53A8A24107D04EE194E9768DB6900CC0&event_sequence_number=6&tracking_id=1550543354421122302&product_version=18.09.00.3034&wgc_application_id=WGC.EU.PRODUCTION&preset_application_id=TWA.EU.PRODUCTION&inst_screen_id=5&inst_error_id=15 2020-01-24 22:05:00.326 Need to restart Windows? No 2020-01-24 22:05:00.334 Deinitializing Setup. 2020-01-24 22:05:00.334 [SS] Cleaning up module... 2020-01-24 22:05:00.334 [SS] Wating for stats events to be finished 2020-01-24 22:05:00.426 [NS] Remove request: 7 2020-01-24 22:05:00.426 [NS] Unloading module... 2020-01-24 22:05:00.427 [NS] All requests stopped 2020-01-24 22:05:00.427 [NS] Http system deinitialized 2020-01-24 22:05:00.527 Log closed. --- snip ---
Analysing the installer script by using following tools:
* innounp, the Inno Setup Unpacker -> http://innounp.sourceforge.net/ * IFPSTools, tools for working with RemObjects PascalScript files (mainly disassemble PascalScript) -> https://github.com/Wack0/IFPSTools
--- snip --- $ wine innounp.exe -m -x -d_unpacked total_war_arena_install_eu_bs39qvgzadby.exe ... $ php IFPSTools/DisIFPS.php _unpacked/embedded/CompiledCode.bin script_disassembly.pas --- snip ---
This results in a big RemObjects PascalScript disassembly. The relevant part:
--- snip --- Functions[911] = exported BOOLEAN RUN_WGC_UNELEVATED() pushtype S32 ; StackCount = 1 pushtype BOOLEAN ; StackCount = 2 pushtype UnicodeString ; StackCount = 3 assign Var3, ( String "Running WGC..." ) call LOG pop ; StackCount = 2 pushtype Pointer ; StackCount = 3 setptr Var3, Var1 pushtype TEXECWAIT ; StackCount = 4 assign Var4, ( U8 0 ) pushtype S32 ; StackCount = 5 assign Var5, ( S32 5 ) pushtype UnicodeString ; StackCount = 6 assign Var6, ( String "" ) pushtype UnicodeString ; StackCount = 7 pushtype UnicodeString ; StackCount = 8 assign Var8, ( String "" ) pushvar Var7 ; StackCount = 9 call GETLAUNCHERARGUMENTS pop ; StackCount = 8 pop ; StackCount = 7 pushtype UnicodeString ; StackCount = 8 pushtype WideString ; StackCount = 9 assign Var9, Global45 calculate Var9 + ( String "\wgc.exe" ) assign Var8, Var9 pop ; StackCount = 8 pushtype UnicodeString ; StackCount = 9 assign Var9, ( String "" ) pushvar Var2 ; StackCount = 10 call SHELLEXECUTEWITHCHECK pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7 pop ; StackCount = 6 pop ; StackCount = 5 pop ; StackCount = 4 pop ; StackCount = 3 pop ; StackCount = 2 pushtype BOOLEAN ; StackCount = 3 assign Var3, Var2 logicalnot Var3 setflag not Var3 pop ; StackCount = 2 jumpflag loc_153 pushtype S32 ; StackCount = 3 assign Var3, ( S32 15 ) pushtype S32 ; StackCount = 4 assign Var4, ( S32 5 ) call SS_NOTIFY_INSTALLERERROROCCURRED pop ; StackCount = 3 pop ; StackCount = 2 loc_153: assign RetVal, Var2 ret
Functions[326] = exported BOOLEAN SHELLEXECUTEWITHCHECK(in UnicodeString Arg1,in UnicodeString Arg2,in UnicodeString Arg3,in UnicodeString Arg4,in S32 Arg5,in TEXECWAIT Arg6,out S32 Arg7) pushtype BOOLEAN ; StackCount = 1 assign Var1, Global16 jumpfalse Var1, loc_3e pushtype BOOLEAN ; StackCount = 2 pushvar Var2 ; StackCount = 3 call ISWINXP pop ; StackCount = 2 logicalnot Var2 calculate Var1 & Var2 pop ; StackCount = 1 loc_3e: setflag not Var1 pop ; StackCount = 0 jumpflag loc_231 pushtype BOOLEAN ; StackCount = 1 pushtype UnicodeString ; StackCount = 2 pushtype UnicodeString ; StackCount = 3 assign Var3, ( String "{win}\explorer.exe" ) pushvar Var2 ; StackCount = 4 call SAFEEXPANDCONSTANT pop ; StackCount = 3 pop ; StackCount = 2 compare Var1, Arg2 == Var2 pop ; StackCount = 1 jumptrue Var1, loc_d7 pushtype BOOLEAN ; StackCount = 2 compare Var2, Arg2 == ( String "explorer.exe" ) calculate Var1 | Var2 pop ; StackCount = 1 loc_d7: jumptrue Var1, loc_110 pushtype BOOLEAN ; StackCount = 2 compare Var2, Arg2 == ( String "explorer" ) calculate Var1 | Var2 pop ; StackCount = 1 loc_110: setflag not Var1 pop ; StackCount = 0 jumpflag loc_1a9 pushtype Pointer ; StackCount = 1 setptr Var1, Arg7 pushtype TEXECWAIT ; StackCount = 2 assign Var2, Arg6 pushtype S32 ; StackCount = 3 assign Var3, Arg5 pushtype UnicodeString ; StackCount = 4 assign Var4, Arg4 pushtype UnicodeString ; StackCount = 5 assign Var5, ( String "" ) pushtype UnicodeString ; StackCount = 6 assign Var6, Arg3 pushtype UnicodeString ; StackCount = 7 assign Var7, Arg1 pushvar RetVal ; StackCount = 8 call SHELLEXECUTEUNELEVATED pop ; StackCount = 7 pop ; StackCount = 6 pop ; StackCount = 5 pop ; StackCount = 4 pop ; StackCount = 3 pop ; StackCount = 2 pop ; StackCount = 1 pop ; StackCount = 0 jump loc_22c loc_1a9: pushtype Pointer ; StackCount = 1 setptr Var1, Arg7 pushtype TEXECWAIT ; StackCount = 2 assign Var2, Arg6 pushtype S32 ; StackCount = 3 assign Var3, Arg5 pushtype UnicodeString ; StackCount = 4 assign Var4, Arg4 pushtype UnicodeString ; StackCount = 5 assign Var5, Arg3 pushtype UnicodeString ; StackCount = 6 assign Var6, Arg2 pushtype UnicodeString ; StackCount = 7 assign Var7, Arg1 pushvar RetVal ; StackCount = 8 call SHELLEXECUTEUNELEVATED pop ; StackCount = 7 pop ; StackCount = 6 pop ; StackCount = 5 pop ; StackCount = 4 pop ; StackCount = 3 pop ; StackCount = 2 pop ; StackCount = 1 pop ; StackCount = 0 loc_22c: jump loc_2b4 loc_231: pushtype Pointer ; StackCount = 1 setptr Var1, Arg7 pushtype TEXECWAIT ; StackCount = 2 assign Var2, Arg6 pushtype S32 ; StackCount = 3 assign Var3, Arg5 pushtype UnicodeString ; StackCount = 4 assign Var4, Arg4 pushtype UnicodeString ; StackCount = 5 assign Var5, Arg3 pushtype UnicodeString ; StackCount = 6 assign Var6, Arg2 pushtype UnicodeString ; StackCount = 7 assign Var7, Arg1 pushvar RetVal ; StackCount = 8 call SHELLEXEC pop ; StackCount = 7 pop ; StackCount = 6 pop ; StackCount = 5 pop ; StackCount = 4 pop ; StackCount = 3 pop ; StackCount = 2 pop ; StackCount = 1 pop ; StackCount = 0 loc_2b4: ret --- snip ---
The installer tries to start 'wgc' (client) as unelevated process after finishing installation using the well known "ShellExecuteFromExplorer" method. Also described here:
https://stackoverflow.com/questions/37948064/how-to-launch-non-elevated-admi...
Tidbit: Even with the method working in general, Wine's 'explorer.exe' always runs as elevated process which is wrong as well -> bug 39262 ("DiscordSetup.exe (.NET 4.5.2 app): Squirrell installer requires being run as unelevated process ('explorer.exe' should run unelevated by default with Vista+ setting)"). Fortunately the client here doesn't check this unlike other apps.
You can also see why 'Windows XP' works, it uses different code path -> 'ShellExecuteExW' and not "ShellExecuteFromExplorer" method.
The parameters, dumped from 'ole' debug channel:
--- snip --- ... 0059:trace:ole:SysAllocStringLen L"Running WGC..." ... 0059:trace:ole:SysAllocStringLen L""C:\ProgramData\Wargaming.net\GameCenter\wgc.exe" --install -g TWA.EU.PRODUCTION@https://wgus-twaeu.wargaming.net/ --setLang -l en --session-id 77DA8BEB5A864844B974BDF486FC546B --event-sequence-number 6 '" 0059:trace:ole:SysAllocStringLen L"C:\ProgramData\Wargaming.net\GameCenter\wgc.exe" 0059:trace:ole:CoCreateInstance (rclsid={9ba05972-f6a8-11cf-a442-00a0c90a8f39}, pUnkOuter=00000000, dwClsContext=00000017, riid={85cb6900-4d95-11cf-960c-0080c7f4ee85}, ppv=0032F5B4) 0059:trace:ole:CoCreateInstanceEx ({9ba05972-f6a8-11cf-a442-00a0c90a8f39} 00000000 17 00000000 1 0032F51C) 0059:trace:ole:CoGetTreatAsClass ({9ba05972-f6a8-11cf-a442-00a0c90a8f39},0032F4CC) 0059:trace:ole:apartment_addref 5800000059: before = 1 0059:trace:ole:apartment_release 5800000059: after = 1 0059:trace:ole:CoGetClassObject CLSID: {9ba05972-f6a8-11cf-a442-00a0c90a8f39},IID: {00000001-0000-0000-c000-000000000046} 0059:trace:ole:apartment_addref 5800000059: before = 1 0059:trace:ole:COMPOBJ_DllList_Add L"C:\windows\system32\ieframe.dll" ... 0059:trace:ole:apartment_getclassobject added new loaded dll L"C:\windows\system32\ieframe.dll" 0059:trace:ole:apartment_getclassobject calling DllGetClassObject 0757A020 0059:fixme:ieframe:DllGetClassObject {9ba05972-f6a8-11cf-a442-00a0c90a8f39} {00000001-0000-0000-c000-000000000046} 0032F4C0 0059:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111 for dll L"C:\windows\system32\ieframe.dll" 0076:trace:loaddll:load_native_dll Loaded L"C:\windows\system32\rpcrt4.dll" at 0x250000: PE builtin 0059:warn:ole:CoGetClassObject class {9ba05972-f6a8-11cf-a442-00a0c90a8f39} not registered in-proc handler 0059:trace:ole:apartment_release 5800000059: after = 1 0059:trace:ole:RPC_GetLocalClassObject rclsid={9ba05972-f6a8-11cf-a442-00a0c90a8f39}, iid={00000001-0000-0000-c000-000000000046} 0059:trace:ole:RPC_GetLocalClassObject waiting for L"\\.\pipe\{9BA05972-F6A8-11CF-A442-00A0C90A8F39}" 0076:trace:loaddll:load_native_dll Loaded L"C:\windows\system32\ole32.dll" at 0x180000000: PE builtin 0059:trace:ole:create_local_service Attempting to start Local service for {9ba05972-f6a8-11cf-a442-00a0c90a8f39} 0059:err:ole:create_server class {9ba05972-f6a8-11cf-a442-00a0c90a8f39} not registered 0059:fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported 0059:err:ole:CoGetClassObject no class object {9ba05972-f6a8-11cf-a442-00a0c90a8f39} could be created for context 0x17 0059:trace:ole:SysAllocStringLen L"installer_error_occurred" 0059:trace:ole:SysAllocStringLen L"/" 0059:trace:ole:SysAllocStringLen L"http://wgusst-eu.wargaming.net/" 0059:trace:ole:SysAllocStringLen L"http://wgusst-eu.wargaming.net/" 0059:trace:ole:SysAllocStringLen L"wgc/" 0059:trace:ole:SysAllocStringLen (null) 0059:trace:ole:SysAllocStringLen L"installer_error_occurred" 0059:trace:ole:SysAllocStringLen (null) 0059:trace:ole:SysAllocStringLen L"?installation_id=" --- snip ---
Apparently Explorer local COM server is not working at this point which should handle client requests for 'ShellWindows' object.
The process hiearchy for illustration, don't mind the non-matching pids:
--- snip --- Wine-dbg>info process
pid threads executable (all id:s are in hex)
0000002c 1 'total_war_arena_install_eu_bs39qvgzadby.exe' 00000033 2 _ 'total_war_arena_install_eu_bs39qvgzadby.tmp' 0000002e 4 _ 'explorer.exe' 0000000e 5 'services.exe' 00000021 4 _ 'winedevice.exe' 00000018 5 _ 'winedevice.exe' 00000011 3 _ 'plugplay.exe' 00000008 1 'winedbg.exe' --- snip ---
https://source.winehq.org/git/wine.git/blob/HEAD:/programs/explorer/desktop....
--- snip --- 2145 static void shellwindows_init(void) 2146 { 2147 HRESULT hr; 2148 2149 CoInitialize(NULL); 2150 2151 shellwindows.IShellWindows_iface.lpVtbl = &shellwindowsvtbl; 2152 2153 hr = CoRegisterClassObject(&CLSID_ShellWindows, 2154 (IUnknown*)&shellwindows_classfactory.IClassFactory_iface, 2155 CLSCTX_LOCAL_SERVER, 2156 REGCLS_MULTIPLEUSE, 2157 &shellwindows_classfactory.classreg); 2158 2159 if (FAILED(hr)) 2160 WARN("Failed to register ShellWindows object: %08x\n", hr); 2161 } --- snip ---
Since the unelevated start fails, any subsequent manual run of 'wgc.exe' will *always* result in Russion locale. I've debugged the client - there is no code path with different result when 'preferences.xml' does not exist. Locale 'Ru' is hard-coded into the client ('game_center.dll') as default setting for new config files.
Coming back to the problem with Explorer local COM server ... When looking for an easier/faster way to reproduce I came up with this nifty one liner ;-)
--- snip --- # run against existing WINEPREFIX # 9ba05972-f6a8-11cf-a442-00a0c90a8f39 -> CLSID_ShellWindows
$ while true ; do wine cmd.exe /c "echo test > \\.\pipe\{9ba05972-f6a8-11cf-a442-00a0c90a8f39}" ; sleep 1 ; done
0034:fixme:ntdll:server_get_file_info Unsupported info class 14 Invalid function.
0036:fixme:ntdll:server_get_file_info Unsupported info class 14 Invalid function.
... # kill explorer process/local COM server ... File not found. --- snip ---
'Invalid function.' -> ok, named pipe can be opened 'File not found.' -> error, named pipe does not exist
If this is run against a newly created WINEPREFIX it will always fail. Just use some builtin app to keep it from being shut down.
Trace of WINEPREFIX creation:
--- snip --- $ WINEDEBUG=+process wineboot
wine: created the configuration directory '/home/focht/.wine' 0009:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\wineboot.exe" image L"C:\windows\system32\wineboot.exe" cmdline L"C:\windows\system32\wineboot.exe --init" 0009:trace:process:get_pe_file_info assuming 64-bit builtin for L"\??\C:\windows\system32\wineboot.exe" 0009:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\wineboot.exe" pid 000a tid 000b handles 0xc/0x10 ... 000b:trace:process:CreateProcessInternalW app L"C:\windows\system32\services.exe" cmdline L"C:\windows\system32\services.exe" 000b:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\services.exe" image L"C:\windows\system32\services.exe" cmdline L"C:\windows\system32\services.exe" 000b:trace:process:get_pe_file_info assuming 64-bit builtin for L"\??\C:\windows\system32\services.exe" 000b:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\services.exe" pid 000c tid 000d handles 0x2c/0x30 000b:trace:process:CreateProcessInternalW started process pid 000c tid 000d ... 000b:trace:process:CreateProcessInternalW app L"C:\windows\system32\rundll32.exe" cmdline L"C:\windows\system32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 \\?\Z:\home\focht\projects\wine\mainline-install-x86_64\bin\..\share\wine\wine.inf" 000b:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\rundll32.exe" image L"C:\windows\system32\rundll32.exe" cmdline L"C:\windows\system32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 \\?\Z:\home\focht\projects\wine\mainline-install-x86_64\bin\..\share\wine\wine.inf" 000b:trace:process:get_pe_file_info assuming 64-bit builtin for L"\??\C:\windows\system32\rundll32.exe" 000b:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\rundll32.exe" pid 000f tid 0010 handles 0x30/0x34 000b:trace:process:CreateProcessInternalW started process pid 000f tid 0010 ... 000b:trace:process:CreateProcessInternalW app L"C:\windows\system32\explorer.exe" cmdline L"C:\windows\system32\explorer.exe /desktop" 000b:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\explorer.exe" image L"C:\windows\system32\explorer.exe" cmdline L"C:\windows\system32\explorer.exe /desktop" 000b:trace:process:get_pe_file_info assuming 64-bit builtin for L"\??\C:\windows\system32\explorer.exe" 000b:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\explorer.exe" pid 0011 tid 0012 handles 0x78/0x7c 000b:trace:process:CreateProcessInternalW started process pid 0011 tid 0012 ... 0010:trace:process:CreateProcessInternalW app L"C:\windows\system32\explorer.exe" cmdline L"C:\windows\system32\explorer.exe /desktop" 0010:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\explorer.exe" image L"C:\windows\system32\explorer.exe" cmdline L"C:\windows\system32\explorer.exe /desktop" 0010:trace:process:get_pe_file_info assuming 64-bit builtin for L"\??\C:\windows\system32\explorer.exe" 0010:trace:process:RtlCreateUserProcess L"\??\C:\windows\system32\explorer.exe" pid 0013 tid 0014 handles 0x4c/0x50 0010:trace:process:CreateProcessInternalW started process pid 0013 tid 0014 ...
... 0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046} 0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa} 0012:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002 0012:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002 0012:err:ole:get_local_server_stream Failed: 80004002 ...
... 0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046} 0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa} 0014:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002 0014:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002 0014:err:ole:get_local_server_stream Failed: 80004002 ...
... 0014:warn:ole:CoGetPSClsid No PSFactoryBuffer object is registered for IID {00000131-0000-0000-c000-000000000046} .... 0014:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002 0014:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002 0014:trace:ole:CoMarshalInterface completed with hr 0x80004002 0014:err:ole:get_local_server_stream Failed: 80004002 0014:trace:ole:apartment_release 1300000014: after = 1 0014: terminate_process( handle=0000, exit_code=0 ) 0014: terminate_process() = 0 { self=1 } 0014:trace:ole:DllMain 00000000006D0000 0x0 0000000000000001 0014: terminate_process( handle=ffffffff, exit_code=0 ) 0014: terminate_process() = 0 { self=1 } 0014: *killed* exit_code=0 0012: *wakeup* signaled=0 0013: *process killed* 0010: *wakeup* signaled=0 0012: get_message( flags=04ff0001, get_win=00000000, get_first=00000000, get_last=ffffffff, hw_id=00000000, wake_mask=00000040, changed_mask=000004ff ) 0012: get_message() = 0 { win=00010020, msg=00000210, wparam=00000002, lparam=00020050, type=6, x=0, y=0, time=2f3e3012, active_hooks=80000000, total=0, data={} } 0010: close_handle( handle=0054 ) 0010: close_handle() = 0 0010: close_handle( handle=0050 ) 0010: close_handle() = 0 0012: get_thread_input( tid=0000 ) 0012: get_thread_input() = 0 { focus=00010044, capture=00000000, active=00010044, foreground=00010044, menu_owner=00000000, move_size=00000000, caret=00000000, cursor=00000000, show_count=0, rect={0,0;0,0} } 0010: get_desktop_window( force=1 ) 0010: get_desktop_window() = 0 { top_window=00010020, msg_window=00010026 } 0012: set_window_info( flags=0000, is_unicode=0, handle=00010044, style=00000000, ex_style=00000000, id=00000000, instance=00000000, user_data=00000000, extra_offset=-1, extra_size=0, extra_value=00000000 ) 0012: set_window_info() = 0 { old_style=9cc009c4, old_ex_style=00010101, old_instance=140000000, old_user_data=00000000, old_extra_value=00000000, old_id=00000000 } --- snip ---
One 'explorer' process is started by 'wineboot', the other one by 'rundll32'. Both fail to create the COM servers because the needed registry data (proxies/marshalling) doesn't exist at this point. The second instance terminates after a short time, while the original 'explorer' process still runs. It pumps messages but it can't serve any COM clients.
$ sha1sum total_war_arena_install_eu_bs39qvgzadby.exe 6bd7be004a356bb5af526bd0e647d22b547a76b3 total_war_arena_install_eu_bs39qvgzadby.exe
$ du -sh total_war_arena_install_eu_bs39qvgzadby.exe 4.7M total_war_arena_install_eu_bs39qvgzadby.exe
$ wine --version wine-5.0-144-g9a9a1821a3
Regards
*** This bug has been marked as a duplicate of bug 41713 ***