[PATCH 4/4] wbemprox: Implement Win32_NetworkAdapter.ServiceName.

Hans Leidekker hans at codeweavers.com
Thu Jan 21 05:36:42 CST 2021


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50256
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/wbemprox/builtin.c     |  3 +++
 dlls/wbemprox/tests/query.c | 14 ++++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 9dac80086f1..cde664aacde 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[] =
@@ -599,6 +600,7 @@ struct record_networkadapter
     UINT16       netconnection_status;
     int          physicaladapter;
     const WCHAR *pnpdevice_id;
+    const WCHAR *servicename;
     UINT64       speed;
 };
 struct record_networkadapterconfig
@@ -2681,6 +2683,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 c252edd26d1..336c1c5d669 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 );
     }
 
-- 
2.29.2




More information about the wine-devel mailing list