[Bug 45600] Wargaming Game Center has 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)
WineHQ Bugzilla
wine-bugs at winehq.org
Sat Jan 25 07:30:59 CST 2020
https://bugs.winehq.org/show_bug.cgi?id=45600
Anastasius Focht <focht at 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 at 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-administrator-process-from-elevated-administrator-con
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 at 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.c#l2145
--- 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 ***
--
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