[Bug 22392] 3dmark03, 3dmark06 crash on startup when trying to get system info (Wine lacks support for COM dll surrogate, dllhost.exe)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Mar 25 16:31:36 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=22392

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
            Summary|3dmark03, 3dmark06 crash on |3dmark03, 3dmark06 crash on
                   |startup when trying to get  |startup when trying to get
                   |system info                 |system info (Wine lacks
                   |                            |support for COM dll
                   |                            |surrogate, dllhost.exe)

--- Comment #8 from Anastasius Focht <focht at gmx.net> 2012-03-25 16:31:36 CDT ---
Hello,

--- quote ---
3DMark03 works just fine for me with Wine 1.5.0.
--- quote ---

I doubt that.
Even 3DMark03 still has this problem, though no crash.

It tries to instanciate COM surrogate using COM elevation moniker:

(http://msdn.microsoft.com/en-us/library/windows/desktop/ms679687%28v=vs.85%29.aspx)

--- snip ---
0024:CALL SI3.??0CSI3_dll@@QAE at XZ(<unknown, check return>) ret=00408769
...
0024:Call ole32.CoInitializeEx(00000000,00000002) ret=100131b5
0024:Ret  ole32.CoInitializeEx() retval=00000001 ret=100131b5
0024:Call KERNEL32.GetConsoleWindow() ret=100131bb
0024:Ret  KERNEL32.GetConsoleWindow() retval=00000000 ret=100131bb
0024:Call ole32.StringFromGUID2(1003d240,0032f638,00000032) ret=100131d2
0024:Ret  ole32.StringFromGUID2() retval=00000027 ret=100131d2
0024:Call KERNEL32.GetLastError() ret=1002539a
0024:Ret  KERNEL32.GetLastError() retval=00000000 ret=1002539a
0024:Call ole32.CoGetObject(0032f3e0
L"Elevation:Administrator!new:{F21AABF7-4F63-48FB-9524-822429922224}",0032f3a8,1003d200,00a77044)
ret=10013222
...
0024:Ret  ole32.CoGetObject() retval=80070057 ret=10013222 
--- snip ---

and falls back to standard COM surrogate instanciation (no local server -> dll
needs to be hosted in remote process):

--- snip ---
0024:Call ole32.CoCreateInstance(1003d240,00000000,00000004,1003d200,00a07004)
ret=10013233
0024:trace:ole:CoCreateInstance (rclsid={f21aabf7-4f63-48fb-9524-822429922224},
pUnkOuter=(nil), dwClsContext=00000004,
riid={96b9667d-889a-4c0c-b2de-ada9312e2fcc}, ppv=0xa07004)
0024:trace:ole:CoGetClassObject CLSID:
{f21aabf7-4f63-48fb-9524-822429922224},IID:
{00000001-0000-0000-c000-000000000046}
0024:trace:ole:RPC_GetLocalClassObject
rclsid={f21aabf7-4f63-48fb-9524-822429922224},
iid={00000001-0000-0000-c000-000000000046}
0024:trace:ole:RPC_GetLocalClassObject waiting for
L"\\\\.\\pipe\\{F21AABF7-4F63-48FB-9524-822429922224}"
0024:Call KERNEL32.WaitNamedPipeW(0032f0cc
L"\\\\.\\pipe\\{F21AABF7-4F63-48FB-9524-822429922224}",ffffffff) ret=7e652f7c
0024:Ret  KERNEL32.WaitNamedPipeW() retval=00000000 ret=7e652f7c
0024:Call KERNEL32.CreateFileW(0032f0cc
L"\\\\.\\pipe\\{F21AABF7-4F63-48FB-9524-822429922224}",c0000000,00000000,00000000,00000003,00000000,00000000)
ret=7e652fbd
0024:Ret  KERNEL32.CreateFileW() retval=ffffffff ret=7e652fbd
0024:trace:ole:create_local_service Attempting to start Local service for
{f21aabf7-4f63-48fb-9524-822429922224}
0024:Call advapi32.RegOpenKeyExW(80000000,0032eda2
L"CLSID\\{F21AABF7-4F63-48FB-9524-822429922224}",00000000,00020019,0032ed9c)
ret=7e618a3f
0024:Ret  advapi32.RegOpenKeyExW() retval=00000000 ret=7e618a3f
0024:Call advapi32.RegQueryValueExW(000000a0,7e6e8400
L"AppId",00000000,0032ee30,0032ee9a,0032ee38) ret=7e618b64
0024:Ret  advapi32.RegQueryValueExW() retval=00000000 ret=7e618b64
0024:Call advapi32.RegCloseKey(000000a0) ret=7e618b78
0024:Ret  advapi32.RegCloseKey() retval=00000000 ret=7e618b78
0024:Call advapi32.RegOpenKeyExW(80000000,0032ee3e
L"AppId\\{98D47D6B-5724-481B-BF22-2DCFEE22CE1A}",00000000,00020019,0032ef38)
ret=7e618bfc
0024:Ret  advapi32.RegOpenKeyExW() retval=00000000 ret=7e618bfc
0024:Call advapi32.RegQueryValueExW(000000a0,7e6ef91a
L"LocalService",00000000,0032ef34,0032ef3e,0032ef30) ret=7e652c59
0024:Ret  advapi32.RegQueryValueExW() retval=00000002 ret=7e652c59
0024:warn:ole:create_local_service No LocalService value
0024:Call advapi32.RegCloseKey(000000a0) ret=7e652e12
0024:Ret  advapi32.RegCloseKey() retval=00000000 ret=7e652e12
0024:Call advapi32.RegOpenKeyExW(80000000,0032ec52
L"CLSID\\{F21AABF7-4F63-48FB-9524-822429922224}",00000000,00020019,0032ec4c)
ret=7e618a3f
0024:Ret  advapi32.RegOpenKeyExW() retval=00000000 ret=7e618a3f
0024:Call advapi32.RegOpenKeyExW(000000a0,7e6ef964
L"LocalServer32",00000000,00020019,0032ef74) ret=7e618a9c
0024:Ret  advapi32.RegOpenKeyExW() retval=00000002 ret=7e618a9c
0024:Call advapi32.RegCloseKey(000000a0) ret=7e618aad
0024:Ret  advapi32.RegCloseKey() retval=00000000 ret=7e618aad
0024:err:ole:create_server class {f21aabf7-4f63-48fb-9524-822429922224} not
registered
0024:err:ole:CoGetClassObject no class object
{f21aabf7-4f63-48fb-9524-822429922224} could be created for context 0x4
0024:Ret  ole32.CoCreateInstance() retval=80040152 ret=10013233
0024:Call user32.MessageBoxA(00000000,1003d250 "Errors occured while
initializing Futuremark SystemInfo. Please make sure the software is properly
installed. For latest Futuremark SystemInfo, please see
www.futuremark.com.",1003d300 "Error",00000000) ret=10013252
--- snip --- 

"{f21aabf7-4f63-48fb-9524-822429922224}" is provided by "FMSI.dll" COM dll is
located in:

--- snip --- 
c:\drive_c\Program Files\Common Files\Futuremark Shared\Futuremark SystemInfo\
--- snip --- 

The COM dll is properly registered:

--- snip ---
REGEDIT4

[HKEY_CLASSES_ROOT\CLSID\{F21AABF7-4F63-48FB-9524-822429922224}]
@="FuturemarkSystemInfo Class"
"AppID"="{98D47D6B-5724-481B-BF22-2DCFEE22CE1A}"
"LocalizedString"="@C:\\Program Files\\Common Files\\Futuremark
Shared\\Futuremark SystemInfo\\FMSI.dll,-101"

[HKEY_CLASSES_ROOT\CLSID\{F21AABF7-4F63-48FB-9524-822429922224}\Elevation]
"Enabled"=dword:00000001

[HKEY_CLASSES_ROOT\CLSID\{F21AABF7-4F63-48FB-9524-822429922224}\InprocServer32]
@="C:\\Program Files\\Common Files\\Futuremark Shared\\Futuremark
SystemInfo\\FMSI.dll"
"ThreadingModel"="Both"

[HKEY_CLASSES_ROOT\CLSID\{F21AABF7-4F63-48FB-9524-822429922224}\ProgID]
@="FMSI.FuturemarkSystemInfo.1"

[HKEY_CLASSES_ROOT\CLSID\{F21AABF7-4F63-48FB-9524-822429922224}\Programmable]

[HKEY_CLASSES_ROOT\CLSID\{F21AABF7-4F63-48FB-9524-822429922224}\TypeLib]
@="{B1A2B8FD-F87D-4CE8-BD4D-75B4F216F921}"

[HKEY_CLASSES_ROOT\CLSID\{F21AABF7-4F63-48FB-9524-822429922224}\VersionIndependentProgID]
@="FMSI.FuturemarkSystemInfo"
--- snip ---

What's missing here is Wine support for COM dll surrogate:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms695225%28v=vs.85%29.aspx

Might be a dupe of other bugs (or the other way around).

$ du -sh 3DMark03_v360_1901.exe 
182M    3DMark03_v360_1901.exe

$ sha1sum 3DMark03_v360_1901.exe 
w46a439101ddbbe3c9563b5e9651cb61b46ce0619  3DMark03_v360_1901.exe

$ wine --version
wine-1.5.0

3DMark03_v360_1901.exe

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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