[Bug 19427] Radio Manager 1.4 (.NET 2.0 app) fails on startup
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Apr 27 15:26:57 CDT 2014
https://bugs.winehq.org/show_bug.cgi?id=19427
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|-unknown |wmi&wbemprox
Summary|Generic failure of Radio |Radio Manager 1.4 (.NET 2.0
|Manager |app) fails on startup
--- Comment #14 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
confirming.
Prerequisite: 'winetricks -q dotnet20'
--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Radionomy/RadioManager
$ WINEDEBUG=+tid,+seh,+wbemprox wine ./Radiomanager.exe >>log.txt 2>&1
...
0023:trace:wbemprox:wbem_services_ExecQuery 0x1dccd8, L"WQL", L"SELECT
OSLanguage FROM Win32_OperatingSystem", 0x00000010, (nil), 0x33ee50
0023:trace:wbemprox:grab_table returning 0x7de920d0
0023:trace:wbemprox:parse_query wql_parse returned 0
0023:trace:wbemprox:fill_os created 1 rows
0023:trace:wbemprox:EnumWbemClassObject_create 0x33ee50
0023:trace:wbemprox:EnumWbemClassObject_create returning iface 0x1dcd60
...
0023:fixme:wbemprox:client_security_QueryBlanket
0023:fixme:wbemprox:client_security_Release 0x7de92344
0023:trace:wbemprox:enum_class_object_QueryInterface 0x1dcd60,
{00000000-0000-0000-c000-000000000046}, 0x33ec68
0023:trace:wbemprox:enum_class_object_QueryInterface 0x1dcd60,
{0000013d-0000-0000-c000-000000000046}, 0x33ec64
0023:fixme:wbemprox:client_security_SetBlanket 0x7de92344, 0x1dcd60,
4294967295, 0, L"<COLE_DEFAULT_PRINCIPAL>", 2, 3, (nil), 0x00000020
0023:fixme:wbemprox:client_security_Release 0x7de92344
0023:trace:wbemprox:enum_class_object_Clone 0x1dcd60, 0x33f0b0
0023:trace:wbemprox:EnumWbemClassObject_create 0x33f0b0
0023:trace:wbemprox:EnumWbemClassObject_create returning iface 0x1dcd98
...
0023:fixme:wbemprox:client_security_QueryBlanket
0023:fixme:wbemprox:client_security_Release 0x7de92344
0023:trace:wbemprox:enum_class_object_QueryInterface 0x1dcd98,
{00000000-0000-0000-c000-000000000046}, 0x33ec88
0023:trace:wbemprox:enum_class_object_QueryInterface 0x1dcd98,
{0000013d-0000-0000-c000-000000000046}, 0x33ec84
0023:fixme:wbemprox:client_security_SetBlanket 0x7de92344, 0x1dcd98,
4294967295, 0, L"<COLE_DEFAULT_PRINCIPAL>", 2, 3, (nil), 0x00000020
0023:fixme:wbemprox:client_security_Release 0x7de92344
0023:trace:wbemprox:enum_class_object_Reset 0x1dcd98
0023:trace:wbemprox:enum_class_object_Next 0x1dcd98, -1, 1, 0x1b4610, 0xa7298c
0023:trace:wbemprox:create_class_object L"Win32_OperatingSystem", 0x1b4610
0023:trace:wbemprox:create_class_object returning iface 0x1ca6e0
...
0023:trace:wbemprox:class_object_Get 0x1ca6e0, L"__GENUS", 00000000, 0x33f108,
0x33f1cc, 0x33f1c8
0023:trace:wbemprox:class_object_Get 0x1ca6e0, L"__PATH", 00000000, 0x33f0f0,
0x33f1b8, 0x33f1b4
0023:trace:wbemprox:class_object_GetNames 0x1ca6e0, (null), 00000040,
{VT_EMPTY}, 0x33f0ec
0023:fixme:wbemprox:class_object_GetNames qualifier not supported
0023:trace:wbemprox:class_object_Get 0x1ca6e0, L"BuildNumber", 00000000,
0x33f118, 0xa730f0, 0xa730f4
0023:trace:seh:raise_exception code=e0434f4d flags=1 addr=0x7b83ac57
ip=7b83ac57 tid=0023
0023:trace:seh:raise_exception info[0]=80131501
0023:trace:seh:raise_exception eax=7b826c7d ebx=7b8bb000 ecx=80131501
edx=0033f028 esi=0033f0a4 edi=e0434f4d
0023:trace:seh:raise_exception ebp=0033f068 esp=0033f004 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000287
--- snip ---
Using a managed debugger:
--- snip ---
(22.23): CLR exception - code e0434f4d (first chance)
OS Thread Id: 0x23 (0)
ESP EIP
0033f0f4 7b83ac57 [HelperMethodFrame: 0033f0f4]
0033f198 0434fa62
System.Management.ManagementException.ThrowWithExtendedInfo(System.Management.ManagementStatus)
0033f1d8 0434f989 System.Management.PropertyData.RefreshPropertyInfo()
0033f1e0 0434f8f9
System.Management.PropertyDataCollection+PropertyDataEnumerator.get_Current()
0033f1f0 0434ba02 Common.Translate.GetOSCultureInfo()
0033f224 043401f4 Usr.Winforms.Program.Main()
0033f4fc 79e88f63 [GCFrame: 0033f4fc]
--- snip ---
The actual .NET code, decompiled with ILSpy from 'Common.dll':
--- snip ---
// Common.Translate
public static CultureInfo GetOSCultureInfo()
{
ManagementObjectSearcher managementObjectSearcher = new
ManagementObjectSearcher();
managementObjectSearcher.get_Query().set_QueryString("SELECT OSLanguage FROM
Win32_OperatingSystem");
ManagementObjectCollection managementObjectCollection =
managementObjectSearcher.Get();
string text = string.Empty;
using (ManagementObjectCollection.ManagementObjectEnumerator enumerator =
managementObjectCollection.GetEnumerator())
{
while (enumerator.MoveNext())
{
ManagementObject managementObject =
(ManagementObject)enumerator.get_Current();
PropertyDataCollection.PropertyDataEnumerator enumerator2 =
managementObject.get_Properties().GetEnumerator();
try
{
while (enumerator2.MoveNext())
{
PropertyData current = enumerator2.get_Current();
text = text + current.get_Value() + ",";
}
}
finally
{
IDisposable disposable = enumerator2 as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
}
}
text = text.Substring(0, text.get_Length() - 1);
int num = int.Parse(text.Trim());
return CultureInfo.GetCultureInfo(num);
}
--- snip ---
The way the innermost property enumeration loop is written: only 'OSLanguage'
type property is expected.
WMI SQL 'SELECT OSLanguage FROM Win32_OperatingSystem' statement should take of
this.
In the more detailed trace log one can see:
--- snip ---
..
002a:trace:wbemprox:class_object_GetNames 0x1798c8, (null), 00000040,
{VT_EMPTY}, 0x33f180
002a:fixme:wbemprox:class_object_GetNames qualifier not supported
002a:Call oleaut32.SafeArrayCreateVector(00000008,00000000,00000014)
ret=7e082f76
002a:trace:variant:SafeArrayCreateVector (8->VT_BSTR,0,20
002a:Call ntdll.RtlAllocateHeap(00110000,00000008,00000078) ret=7e184fb8
002a:Ret ntdll.RtlAllocateHeap() retval=001557f8 ret=7e184fb8
002a:Ret oleaut32.SafeArrayCreateVector() retval=00155808 ret=7e082f76
002a:Call oleaut32.SysAllocString(7e08d79e L"BuildNumber") ret=7e083028
002a:trace:ole:SysAllocStringLen L"BuildNumber"
002a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000020) ret=7e1730db
002a:Ret ntdll.RtlAllocateHeap() retval=00179450 ret=7e1730db
002a:Ret oleaut32.SysAllocString() retval=00179454 ret=7e083028
002a:Call oleaut32.SafeArrayPutElement(00155808,0033f09c,00179454) ret=7e08304d
002a:trace:variant:SafeArrayPutElement (0x155808,0x33f09c,0x179454)
002a:trace:variant:SafeArrayLock (0x155808)
002a:trace:variant:SafeArrayPtrOfIndex (0x155808,0x33f09c,0x33efe0)
002a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000020) ret=7e1730db
002a:Ret ntdll.RtlAllocateHeap() retval=00155878 ret=7e1730db
002a:trace:variant:SafeArrayUnlock (0x155808)
002a:Ret oleaut32.SafeArrayPutElement() retval=00000000 ret=7e08304d
002a:Call oleaut32.SysAllocString(7e08d7c8 L"Caption") ret=7e083028
002a:trace:ole:SysAllocStringLen L"Caption"
...
--- snip ---
'GetNames' is probably called from the
'PropertyDataCollection.PropertyDataEnumerator' ctor/init to collect all
management object properties.
Unfortunately all (builtin) properties are returned here on that view. The
active view should only contain 'OSLanguage' property.
$ sha1sum rm1401en_demo.zip
ced55204bf3c1f0d1ccd3c5b959e9199f8985cd7 rm1401en_demo.zip
$ du -sh rm1401en_demo.zip
66M rm1401en_demo.zip
$ wine --version
wine-1.7.17-92-ge2bf516
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