[Bug 37001] New: APB Reloaded 1.x (MMORPG) launcher crashes on startup (some CIM data type to OLE variant (VT) mappings are incorrect)
wine-bugs at winehq.org
wine-bugs at winehq.org
Wed Jul 30 15:32:10 CDT 2014
https://bugs.winehq.org/show_bug.cgi?id=37001
Bug ID: 37001
Summary: APB Reloaded 1.x (MMORPG) launcher crashes on startup
(some CIM data type to OLE variant (VT) mappings are
incorrect)
Product: Wine
Version: 1.7.23
Hardware: x86
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: wmi&wbemprox
Assignee: wine-bugs at winehq.org
Reporter: focht at gmx.net
Hello folks,
as the summary says.
The bootstrapper installer downloads the client which is ~6GB
After installing the client, .NET Framework 2.0, PunkBuster, the launcher fails
on startup (before updating itself).
Managed backtrace:
--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/GamersFirst/APB Reloaded/Launcher
$ wine ./APBLauncher.exe
...
Unhandled Exception: System.TypeInitializationException: The type initializer
for 'Hosting.cLog' threw an exception. ---> System.InvalidCastException:
Specified cast is not valid.
at System.Management.PropertyData.MapWmiValueToValue(Object wmiValue,
CimType type, Boolean isArray)
at System.Management.PropertyData.get_Value()
at Hosting.cOSInfoWMI.IWin32.Print(PrintDelegate Print)
at Hosting.cLog.StartDiagnoseMessages()
at Hosting.cLog.WriteDiagnoseMessages()
at Hosting.cLog..cctor()
--- End of inner exception stack trace ---
at Hosting.cLog.Warning(String sMessage)
at Hosting.Program.CurrentDomain_UnhandledException(Object sender,
UnhandledExceptionEventArgs e)
--- snip ---
Managed code from launcher:
--- snip ---
// Hosting.cLog
private static void StartDiagnoseMessages()
{
cLog.Write("[APB Launcher] " + DateTime.get_Now().ToLongDateString() + ", "
+ DateTime.get_Now().ToLongTimeString());
cLog.StartDiagnoseMessageUserName();
cLog.StartDiagnoseMessageUAC();
ArrayList arrayList = new ArrayList();
arrayList.Add(new cOSInfoWMI.Win32_OperatingSystem());
arrayList.Add(new cOSInfoWMI.Win32_Processor());
arrayList.Add(new cOSInfoWMI.Win32_ComputerSystem());
arrayList.Add(new cOSInfoWMI.Win32_NetworkAdapterConfiguration());
arrayList.Add(new cOSInfoWMI.Win32_LogicalDisk());
arrayList.Add(new cOSInfoWMI.Win32_VideoController());
arrayList.Add(new cOSInfoWMI.Win32_SoundDevice());
IEnumerator enumerator = arrayList.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
cOSInfoWMI.IWin32 win =
(cOSInfoWMI.IWin32)enumerator.get_Current();
win.Print(new cOSInfoWMI.IWin32.PrintDelegate(cLog.Write));
}
}
finally
{
IDisposable disposable = enumerator as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
cLog.Flush();
}
...
using Hosting;
using System;
public class Win32_ComputerSystem : cOSInfoWMI.IWin32
{
internal new enum Property : ushort
{
DNSHostName,
Domain,
DomainRole,
Manufacturer,
Model,
Name,
NameFormat,
Status,
SystemType,
TotalPhysicalMemory,
UserName
}
internal new enum SpecialByte : ushort
{
TotalPhysicalMemory
}
internal new enum SpecialKiloByte : ushort
{
}
private enum DomainRole
{
Standalone_Workstation,
Member_Workstation,
Standalone_Server,
Member_Server,
Backup_Domain_Controller,
Primary_Domain_Controller
}
}
...
// Hosting.cOSInfoWMI.IWin32
public virtual void Print(cOSInfoWMI.IWin32.PrintDelegate Print)
{
Print("\n");
Print(base.GetType().get_Name());
string text = this.GetDynamicTypeName() + "+" +
typeof(cOSInfoWMI.IWin32.Property).get_Name();
Type type = Type.GetType(text);
string[] names = Enum.GetNames(type);
ArrayList wMI = this.GetWMI();
for (int i = 0; i < wMI.get_Count(); i++)
{
PropertyData propertyData = (PropertyData)wMI.get_Item(i);
if (i != 0 && names[0] == propertyData.get_Name())
{
Print("\n");
}
if (propertyData != null)
{
Print(string.Format(" {0}\t\t\t{1,-25}", propertyData.get_Name(),
this.InterpreterValueToMeaning(propertyData.get_Name(),
propertyData.get_Value())));
}
}
}
--- snip ---
Some CIM data type to OLE variant (VT) mappings are incorrect.
These need to be fixed with explicit variant override to have the launcher
successfully run:
'Win32_ComputerSystem':
DomainRole -> CIM_UINT16, VT_I4
'Win32_NetworkAdapterConfiguration':
Index -> CIM_UINT32|COL_FLAG_KEY, VT_I4
IPConnectionMetric -> CIM_UINT32, VT_I4
'Win32_VideoController_:
CurrentBitsPerPixel -> CIM_UINT32, VT_I4
CurrentHorizontalResolution -> CIM_UINT32, VT_I4
CurrentVerticalResolution -> CIM_UINT32, VT_I4
There are probably more incorrect type mapping present but the above properties
are strictly required to be fixed.
$ sha1sum GamersFirst_LIVE\!_Setup_EN.exe
904bd380bba06cc32288646fddd5e4b9287ca71b GamersFirst_LIVE!_Setup_EN.exe
$ du -sh GamersFirst_LIVE\!_Setup_EN.exe
13M GamersFirst_LIVE!_Setup_EN.exe
$ wine --version
wine-1.7.23-15-gbe2128f
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