http://bugs.winehq.org/show_bug.cgi?id=34770
Bug #: 34770 Summary: DS License Server: Cannot obtain a valid computer ID Product: Wine Version: 1.7.4 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: lukasz.wojnilowicz@gmail.com Classification: Unclassified
Created attachment 46363 --> http://bugs.winehq.org/attachment.cgi?id=46363 Error message
Steps to reproduce: 1) remove ~/.wine 2) wine start DSLS_17022013_32bit_SSQ.msi 3) default installation except selecting "Install Server from scratch."
Behaviour: Error message (see attachment) and interrupted installation.
Expected behaviour: No error message and successful installation.
Terminal output: fixme:exec:SHELL_execute flags ignored: 0x00000100 fixme:storage:create_storagefile Storage share mode not implemented. err:rpc:I_RpcGetBuffer no binding err:rpc:I_RpcGetBuffer no binding fixme:volume:GetVolumePathNameW (L"C:\users\Public\Application Data", 0x33c1f0, 260), stub! fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),0,3,(nil),0,(nil)) - stub! fixme:wbemprox:client_security_SetBlanket 0xf712d2c0, 0x120fd0, 10, 0, (null), 3, 3, (nil), 0x00000000 fixme:wbemprox:client_security_Release 0xf712d2c0 fixme:wbemprox:class_object_GetNames flags 00000070 not supported err:msi:ITERATE_Actions Execution halted, action L"ActionInitData" returned 1603 err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1603 err:rpc:I_RpcGetBuffer no binding err:rpc:I_RpcGetBuffer no binding
http://bugs.winehq.org/show_bug.cgi?id=34770
NSLW lukasz.wojnilowicz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Installer
http://bugs.winehq.org/show_bug.cgi?id=34770
--- Comment #1 from Nikolay Sivov bunglehead@gmail.com 2013-10-20 06:43:18 CDT --- Probably this one as it returns E_NOTIMPL:
--- fixme:wbemprox:class_object_GetNames flags 00000070 not supported ---
Such flag combination is invalid according to MSDN, but this needs to be tested of course.
http://bugs.winehq.org/show_bug.cgi?id=34770
--- Comment #2 from NSLW lukasz.wojnilowicz@gmail.com 2013-10-20 06:46:08 CDT --- (In reply to comment #1)
Probably this one as it returns E_NOTIMPL:
fixme:wbemprox:class_object_GetNames flags 00000070 not supported
Such flag combination is invalid according to MSDN, but this needs to be tested of course.
Do you need more verbose log?
http://bugs.winehq.org/show_bug.cgi?id=34770
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com 2013-10-20 06:53:25 CDT --- Yes, I think +wbemprox,+tid won't hurt.
http://bugs.winehq.org/show_bug.cgi?id=34770
--- Comment #4 from NSLW lukasz.wojnilowicz@gmail.com 2013-10-20 06:57:12 CDT --- Created attachment 46364 --> http://bugs.winehq.org/attachment.cgi?id=46364 WINEDEBUG=+wbemprox,+tid on wine-1.7.4-209-g29c6e10
http://bugs.winehq.org/show_bug.cgi?id=34770
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com 2013-10-20 07:37:19 CDT --- Does it help at all if you comment out this part (return E_NOTIMPL; line)?
--- if (lFlags != WBEM_FLAG_ALWAYS) { FIXME("flags %08x not supported\n", lFlags); return E_NOTIMPL; } ---
http://bugs.winehq.org/show_bug.cgi?id=34770
--- Comment #6 from NSLW lukasz.wojnilowicz@gmail.com 2013-10-20 08:11:09 CDT --- Created attachment 46365 --> http://bugs.winehq.org/attachment.cgi?id=46365 WINEDEBUG=+wbemprox,+tid on wine-1.7.4-209-g29c6e10 after removing E_NOTIMPL
(In reply to comment #5)
Does it help at all if you comment out this part (return E_NOTIMPL; line)?
if (lFlags != WBEM_FLAG_ALWAYS) { FIXME("flags %08x not supported\n", lFlags); return E_NOTIMPL; }
No. The same error.
http://bugs.winehq.org/show_bug.cgi?id=34770
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|Installer |download, source Status|UNCONFIRMED |NEW URL| |http://www.cppfans.com/cntf | |ile.asp?fn=wmi_bcb CC| |focht@gmx.net Component|-unknown |wmi&wbemprox Summary|DS License Server: Cannot |WMI applications fail when |obtain a valid computer ID |incorrectly passing | |WBEM_MASK_CONDITION_ORIGIN | |to | |IWbemClassObject::GetNames | |method (DS License Server, | |some WMI examples) Ever Confirmed|0 |1
--- Comment #7 from Anastasius Focht focht@gmx.net 2013-10-20 12:35:45 CDT --- Hello folks,
probably another case of broken app code, exhibiting an inconsistency of MSDN documentation and real implementation.
The flags value 0x00000070 can be also constructed by passing:
(WBEM_FLAG_ALWAYS | WBEM_MASK_CONDITION_ORIGIN)
The reason the MSDN entry for IWbemClassObject::GetNames() doesn't talk about WBEM_MASK_xxx values is because they are meant to be used by _implementation_ and not by caller (to filter out some groups).
Source: http://source.winehq.org/git/wine.git/blob/46cbc36041278dc19c9ea14223325987e...
--- snip --- 192 typedef [v1_enum] enum tag_WBEM_CONDITION_FLAG_TYPE 193 { 194 WBEM_FLAG_ALWAYS = 0, 195 WBEM_FLAG_ONLY_IF_TRUE = 0x1, 196 WBEM_FLAG_ONLY_IF_FALSE = 0x2, 197 WBEM_FLAG_ONLY_IF_IDENTICAL = 0x3, 198 WBEM_MASK_PRIMARY_CONDITION = 0x3,
199 WBEM_FLAG_KEYS_ONLY = 0x4, 200 WBEM_FLAG_REFS_ONLY = 0x8,
201 WBEM_FLAG_LOCAL_ONLY = 0x10, 202 WBEM_FLAG_PROPAGATED_ONLY = 0x20, 203 WBEM_FLAG_SYSTEM_ONLY = 0x30, 204 WBEM_FLAG_NONSYSTEM_ONLY = 0x40, 205 WBEM_MASK_CONDITION_ORIGIN = 0x70,
206 WBEM_FLAG_CLASS_OVERRIDES_ONLY = 0x100, 207 WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES = 0x200, 208 WBEM_MASK_CLASS_CONDITION = 0x300 209 } WBEM_CONDITION_FLAG_TYPE; --- snip ---
The MSDN entry for IWbemClassObject::BeginEnumeration() method gives a bit of hint:
MSDN http://msdn.microsoft.com/en-us/windows/aa391434%28v=vs.71%29.aspx
--- quote --- WBEM_MASK_CLASS_CONDITION
For classes only. Not a flag - this is just a mask to apply against a flags variable to check if either WBEM_FLAG_CLASS_OVERRIDES_ONLY or WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES is set. --- quote ---
If you search the web for this strange "WBEM_FLAG_ALWAYS | WBEM_MASK_CONDITION_ORIGIN" value you will find some source code examples/snippets. The majority coming from asian "programming" websites. It is likely they copied from each other, spreading bad code further.
It could be very well this invalid value passes on Windows despite MSDN saying otherwise. "flags from the same group are mutually exclusive" (flags) "to check if either x or y is set" (mask)
You can download source code and binary that basically does the same (wrong) thing as the commercial software here:
http://www.cppfans.com/articles/system/bcb_wmi.asp
--- snip --- ... while(pEnumClassObject->Next(WBEM_INFINITE, uCount, &pClassObject, &uReturned) == S_OK) { ... SAFEARRAY *pvNames = NULL; if(pClassObject->GetNames(NULL, WBEM_FLAG_ALWAYS | WBEM_MASK_CONDITION_ORIGIN, NULL, &pvNames) == S_OK) { ... --- snip ---
Refining the bug accordingly.
Regards
https://bugs.winehq.org/show_bug.cgi?id=34770
--- Comment #8 from Gijs Vermeulen gijsvrm@gmail.com --- The sample from the download works as of https://source.winehq.org/git/wine.git/commit/06e455c247c4e7ba56cbdcd636e165418490b299.
Can someone retest DS License Server?
https://bugs.winehq.org/show_bug.cgi?id=34770
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED URL|http://www.cppfans.com/cntf |https://web.archive.org/web |ile.asp?fn=wmi_bcb |/20201124164809/http://www. | |cppfans.com/dldir/cpp_sourc | |e/wmi_bcb.rar Summary|WMI applications fail when |Some WMI applications fail |incorrectly passing |when incorrectly passing |WBEM_MASK_CONDITION_ORIGIN |WBEM_MASK_CONDITION_ORIGIN |to |to |IWbemClassObject::GetNames |IWbemClassObject::GetNames |method (DS License Server, |method |some WMI examples) | Fixed by SHA1| |06e455c247c4e7ba56cbdcd636e | |165418490b299
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello folks,
this is fixed by commit https://source.winehq.org/git/wine.git/commitdiff/06e455c247c4e7ba56cbdcd636... ("wbemprox: Accept 0 and WBEM_FLAG_ALWAYS | WBEM_MASK_CONDITION_ORIGIN as flags in IWbemClassObject::GetNames()."), part of Wine 5.15 release.
Thanks Gijs
Adding stable downloads via Internet Archive:
https://web.archive.org/web/20201124164809/http://www.cppfans.com/dldir/cpp_...
https://web.archive.org/web/20201124170913/https://www.technia.com/wp-conten...
@Gijs
--- quote --- The sample from the download works as of https://source.winehq.org/git/wine.git/commit/06e455c247c4e7ba56cbdcd636e165418490b299.
Can someone retest DS License Server? --- quote ---
The DS License Server doesn't suffer from this problem. The FIXME trace message 'wbemprox:class_object_GetNames flags 00000070 not supported' was always benign and not the reason for the installer failures, even with Wine 1.7.4 this bug was reported against.
Wine 2.0
--- snip --- $ WINEDEBUG=+tid,seh,+loaddll,+wbemprox,+process wine msiexec -i DSLS.msi ... 0042:trace:process:__wine_kernel_init starting process name=L"C:\Program Files (x86)\Dassault Systemes\DS License Server\win_b64\code\bin\DSLicSrv.exe" argv[0]=L"C:\Program Files (x86)\Dassault Systemes\DS License Server\win_b64\code\bin\DSLicSrv.exe" 0042:trace:loaddll:load_native_dll Loaded L"C:\Program Files (x86)\Dassault Systemes\DS License Server\win_b64\code\bin\DSLicSrv.exe" at 0x140000000: native 0016:trace:process:create_process_impl started process pid 0041 tid 0042 ... 0047:trace:loaddll:load_native_dll Loaded L"C:\Program Files (x86)\Dassault Systemes\DS License Server\win_b64\startup\DSLSJRE\bin\server\jvm.dll" at 0x180000000: native ... 0047:trace:loaddll:load_builtin_dll Loaded L"C:\windows\system32\wbemprox.dll" at 0x7efdf4840000: builtin 0047:trace:wbemprox:DllGetClassObject {4590f811-1d3a-11d0-891f-00aa004b2e24} {00000001-0000-0000-c000-000000000046} 0x113af28 0047:trace:wbemprox:wbemprox_cf_CreateInstance (nil) {dc12a687-737f-11cf-884d-00aa004b2e24} 0x113af20 0047:trace:wbemprox:WbemLocator_create (0x113adf8) 0047:trace:wbemprox:WbemLocator_create returning iface 0x56da0 0047:trace:wbemprox:wbem_locator_QueryInterface 0x56da0 {dc12a687-737f-11cf-884d-00aa004b2e24} 0x113af20 0047:trace:wbemprox:wbem_locator_ConnectServer 0x56da0, L"ROOT\CIMV2", (null), (null), (null), 0x00000000, (null), (nil), 0x113b1e0) 0047:trace:wbemprox:WbemServices_create (0x113b1e0) 0047:trace:wbemprox:WbemServices_create returning iface 0x54740 0047:trace:wbemprox:wbem_services_QueryInterface 0x54740 {0000013d-0000-0000-c000-000000000046} 0x113b078 0047:fixme:wbemprox:client_security_SetBlanket 0x7efdf486f060, 0x54740, 10, 0, (null), 3, 3, (nil), 0x00000000 0047:fixme:wbemprox:client_security_Release 0x7efdf486f060 0047:trace:wbemprox:wbem_services_ExecQuery 0x54740, L"WQL", L"SELECT * FROM Win32_DiskDrive", 0x00000030, (nil), 0x113b208 0047:trace:wbemprox:grab_table returning 0x7efdf486e8e0 0047:trace:wbemprox:parse_query wql_parse returned 0 0019:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled 0047:trace:wbemprox:fill_diskdrive created 2 rows 0047:trace:wbemprox:EnumWbemClassObject_create 0x113b208 0047:trace:wbemprox:EnumWbemClassObject_create returning iface 0x5a2a0 0047:trace:wbemprox:enum_class_object_Next 0x5a2a0, -1, 1, 0x113b200, 0x113baf8 0047:trace:wbemprox:create_class_object L"Win32_DiskDrive", 0x113b200 0047:trace:wbemprox:create_class_object returning iface 0x5a2d0 0047:trace:wbemprox:class_object_GetNames 0x5a2d0, (null), 00000070, (null), 0x113b1d8 0047:fixme:wbemprox:class_object_GetNames flags 00000070 not supported 0047:trace:wbemprox:enum_class_object_Next 0x5a2a0, -1, 1, 0x113b200, 0x113baf8 0047:trace:wbemprox:create_class_object L"Win32_DiskDrive", 0x113b200 0047:trace:wbemprox:create_class_object returning iface 0x5a320 0047:trace:wbemprox:class_object_GetNames 0x5a320, (null), 00000070, (null), 0x113b1d8 0047:fixme:wbemprox:class_object_GetNames flags 00000070 not supported 0047:trace:wbemprox:enum_class_object_Next 0x5a2a0, -1, 1, 0x113b200, 0x113baf8 0047:trace:wbemprox:wbem_services_Release destroying 0x54740 0047:trace:wbemprox:wbem_locator_Release destroying 0x56da0 0047:fixme:advapi:RegisterEventSourceW ((null),L"License Server"): stub 0047:fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0xc00003ea,(nil),0x0001,0x00000000,0x113a5c8,(nil)): stub 0047:err:eventlog:ReportEventW L"DSLicSrv does not run in a virtual machine\n" 0047:fixme:advapi:DeregisterEventSource (0xcafe4242) stub 0009:err:msi:ITERATE_Actions Execution halted, action L"StartServices" returned 1627 0009:err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1627 --- snip ---
Wine 5.14
--- snip --- $ WINEDEBUG=+seh,+loaddll,+wbemprox wine msiexec -i DSLS.msi ... 0130:trace:loaddll:build_module Loaded L"C:\windows\system32\wbem\wbemprox.dll" at 0000000001530000: builtin 0130:trace:loaddll:build_module Loaded L"C:\windows\system32\winex11.drv" at 00007F75567A0000: builtin 0130:trace:wbemprox:DllGetClassObject {4590f811-1d3a-11d0-891f-00aa004b2e24} {00000001-0000-0000-c000-000000000046} 000000000127C120 0130:trace:wbemprox:wbemprox_cf_CreateInstance 0000000000000000 {dc12a687-737f-11cf-884d-00aa004b2e24} 000000000127C110 0130:trace:wbemprox:WbemLocator_create (000000000127C050) 0130:trace:wbemprox:WbemLocator_create returning iface 0000000000DFA230 0130:trace:wbemprox:wbem_locator_QueryInterface 0000000000DFA230 {dc12a687-737f-11cf-884d-00aa004b2e24} 000000000127C110 0130:trace:wbemprox:wbem_locator_ConnectServer 0000000000DFA230, L"ROOT\CIMV2", (null), (null), (null), 0x00000000, (null), 0000000000000000, 000000000127C2B0) 0130:trace:wbemprox:WbemServices_create (000000000127C2B0) 0130:trace:wbemprox:WbemServices_create returning iface 0000000000DF95E0 0130:trace:wbemprox:wbem_services_QueryInterface 0000000000DF95E0 {0000013d-0000-0000-c000-000000000046} 000000000127C208 0130:fixme:wbemprox:client_security_SetBlanket 000000000155BCC0, 0000000000DF95E0, 10, 0, (null), 3, 3, 0000000000000000, 0x00000000 0130:fixme:wbemprox:client_security_Release 000000000155BCC0 0130:trace:wbemprox:wbem_services_ExecQuery 0000000000DF95E0, L"WQL", L"SELECT * FROM Win32_DiskDrive", 0x00000030, 0000000000000000, 000000000127C2D8 0130:trace:wbemprox:grab_table returning 000000000155B4F0 0130:trace:wbemprox:parse_query wql_parse returned 0 00a0:fixme:mountmgr:query_property Faking StorageDeviceProperty data 00a0:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled 0130:trace:wbemprox:fill_diskdrive created 2 rows 0130:trace:wbemprox:EnumWbemClassObject_create 000000000127C2D8 0130:trace:wbemprox:EnumWbemClassObject_create returning iface 0000000000DF9F10 0130:trace:wbemprox:enum_class_object_Next 0000000000DF9F10, -1, 1, 000000000127C2D0, 000000000127CBC8 0130:trace:wbemprox:create_class_object L"Win32_DiskDrive", 000000000127C2D0 0130:trace:wbemprox:create_class_object returning iface 0000000000DEB7B0 0130:trace:wbemprox:class_object_GetNames 0000000000DEB7B0, (null), 00000070, (null), 000000000127C2A8 0130:fixme:wbemprox:class_object_GetNames flags 00000070 not supported 0130:trace:wbemprox:enum_class_object_Next 0000000000DF9F10, -1, 1, 000000000127C2D0, 000000000127CBC8 0130:trace:wbemprox:create_class_object L"Win32_DiskDrive", 000000000127C2D0 0130:trace:wbemprox:create_class_object returning iface 0000000000DF9F40 0130:trace:wbemprox:class_object_GetNames 0000000000DF9F40, (null), 00000070, (null), 000000000127C2A8 0130:fixme:wbemprox:class_object_GetNames flags 00000070 not supported 0130:trace:wbemprox:enum_class_object_Next 0000000000DF9F10, -1, 1, 000000000127C2D0, 000000000127CBC8 0130:trace:wbemprox:wbem_services_Release destroying 0000000000DF95E0 0130:trace:wbemprox:wbem_locator_Release destroying 0000000000DFA230 ... DSLicSrv does not run in a virtual machine ... 0024:err:msi:execute_script Execution of script 0 halted; action L"[C:\Program Files\Dassault Systemes\DS License Server\?win_b64?NO?4084?4085?NO? ?<=>S-1-5-21-0-0-0-1000<=>{EDAAAC13-6A72-4023-A479-FCD4973F2FD7}]ActionInitData" returned 1603 0024:err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1603 0024:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5) 0024:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5) 0024:err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1603 --- snip ---
Wine 5.22
--- snip --- ... 017c:Call advapi32.RegOpenKeyExA(ffffffff80000002,14002f850 "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}",00000000,00020019,0168c738) ret=14000244e ... 017c:Ret advapi32.RegOpenKeyExA() retval=00000002 ret=14000244e ... 017c:Call user32.MessageBoxW(00000000,0168be10 L"DSLicSrv does not run in a virtual machine\n",0008d5c0 L"C:\Program Files\Dassault Systemes\DS License Server\win_b64\code\bin\DSLicSrv.exe",00000010) ret=14000acfd --- snip ---
That's bug 9137
$ sha1sum wmi_bcb.rar 01d1914213122324674a76b2acad7cde5f9fd25a wmi_bcb.rar
$ du -sh wmi_bcb.rar 220K wmi_bcb.rar
$ sha1sum DSLS.* e2adad311add5d250d8d863a96ffc95a98e0a3d2 DSLS.msi 13168250ca4f7b5579d9b994cf30a07ef593fab8 DSLS.zip
$ du -sh DSLS.* 36M DSLS.msi 35M DSLS.zip
$ wine --version wine-5.22-39-g4807a8f588c
Regards
https://bugs.winehq.org/show_bug.cgi?id=34770
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 6.0-rc1.
https://bugs.winehq.org/show_bug.cgi?id=34770
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |5.0.x
https://bugs.winehq.org/show_bug.cgi?id=34770
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|5.0.x |---
--- Comment #11 from Michael Stefaniuc mstefani@winehq.org --- Removing the 5.0.x milestone from bug fixes included in 5.0.4.