diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c index d33cf1d03cc..9ae34a50c0d 100644 --- a/dlls/wbemprox/builtin.c +++ b/dlls/wbemprox/builtin.c @@ -206,6 +206,7 @@ static const struct column col_networkadapter[] = { L"NetConnectionStatus", CIM_UINT16 }, { L"PhysicalAdapter", CIM_BOOLEAN }, { L"PNPDeviceID", CIM_STRING }, + { L"ServiceName", CIM_STRING|COL_FLAG_DYNAMIC }, { L"Speed", CIM_UINT64 }, }; static const struct column col_networkadapterconfig[] = @@ -613,6 +614,7 @@ struct record_networkadapter UINT16 netconnection_status; int physicaladapter; const WCHAR *pnpdevice_id; + const WCHAR *servicename; UINT64 speed; }; struct record_networkadapterconfig @@ -2718,6 +2720,7 @@ static enum fill_status fill_networkadapter( struct table *table, const struct e rec->netconnection_status = get_connection_status( aa->OperStatus ); rec->physicaladapter = physical; rec->pnpdevice_id = L"PCI\\VEN_8086&DEV_100E&SUBSYS_001E8086&REV_02\\3&267A616A&1&18"; + rec->servicename = heap_strdupW( aa->FriendlyName ); rec->speed = 1000000; if (!match_row( table, row, cond, &status )) { diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c index 5d7559afe56..a0488f40e52 100644 --- a/dlls/wbemprox/tests/query.c +++ b/dlls/wbemprox/tests/query.c @@ -1160,12 +1160,26 @@ static void test_Win32_NetworkAdapter( IWbemServices *services ) for (;;) { + VARIANT val; + CIMTYPE type; + hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count ); if (hr != S_OK) break; + check_property( obj, L"Description", VT_BSTR, CIM_STRING ); check_property( obj, L"DeviceID", VT_BSTR, CIM_STRING ); check_property( obj, L"Index", VT_I4, CIM_UINT32 ); check_property( obj, L"Name", VT_BSTR, CIM_STRING ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, L"ServiceName", 0, &val, &type, NULL ); + ok( hr == S_OK, "failed to get service name %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR || broken(V_VT( &val ) == VT_NULL) /* win2k8 */, + "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + VariantClear( &val ); + IWbemClassObject_Release( obj ); }