Module: wine Branch: master Commit: 40b262799dce47b4c03156b030de99008e06509a URL: https://gitlab.winehq.org/wine/wine/-/commit/40b262799dce47b4c03156b030de990...
Author: Louis Lenders xerox.xerox2000x@gmail.com Date: Fri Oct 14 10:59:46 2022 +0200
wbemprox: Add HypervisorPresent property to win32_ComputerSystem.
Native Access 2 queries for this property
---
dlls/wbemprox/builtin.c | 3 +++ dlls/wbemprox/tests/query.c | 11 +++++++++++ 2 files changed, 14 insertions(+)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c index 820fb61930f..b8f7d0b8dca 100644 --- a/dlls/wbemprox/builtin.c +++ b/dlls/wbemprox/builtin.c @@ -100,6 +100,7 @@ static const struct column col_compsys[] = { L"Description", CIM_STRING }, { L"Domain", CIM_STRING }, { L"DomainRole", CIM_UINT16 }, + { L"HypervisorPresent", CIM_BOOLEAN }, { L"Manufacturer", CIM_STRING }, { L"Model", CIM_STRING }, { L"Name", CIM_STRING|COL_FLAG_DYNAMIC }, @@ -541,6 +542,7 @@ struct record_computersystem const WCHAR *description; const WCHAR *domain; UINT16 domainrole; + int hypervisorpresent; const WCHAR *manufacturer; const WCHAR *model; const WCHAR *name; @@ -1669,6 +1671,7 @@ static enum fill_status fill_compsys( struct table *table, const struct expr *co rec->description = L"AT/AT COMPATIBLE"; rec->domain = L"WORKGROUP"; rec->domainrole = 0; /* standalone workstation */ + rec->hypervisorpresent = 0; rec->manufacturer = get_compsysproduct_vendor( buf, len ); rec->model = get_compsysproduct_name( buf, len ); rec->name = get_computername(); diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c index 6c66fd93d95..12bc42d249c 100644 --- a/dlls/wbemprox/tests/query.c +++ b/dlls/wbemprox/tests/query.c @@ -751,6 +751,17 @@ static void test_Win32_ComputerSystem( IWbemServices *services ) trace( "numlogicalprocessors %ld\n", V_I4( &value ) ); }
+ type = 0xdeadbeef; + VariantInit( &value ); + hr = IWbemClassObject_Get( obj, L"HypervisorPresent", 0, &value, &type, NULL ); + ok( hr == S_OK || broken(hr == WBEM_E_NOT_FOUND) /* win7 testbot */, "got %#lx\n", hr ); + if (hr == S_OK) + { + ok( V_VT( &value ) == VT_BOOL, "unexpected variant type %#x\n", V_VT( &value ) ); + ok( type == CIM_BOOLEAN, "unexpected type %#lx\n", type ); + trace( "HypervisorPresent %d\n", V_BOOL( &value ) ); + } + check_property( obj, L"NumberOfProcessors", VT_I4, CIM_UINT32 ); check_property( obj, L"SystemType", VT_BSTR, CIM_STRING );