小编dom*_*key的帖子

是否可以在不使用WMI的情况下获得网络适配器的PnPDeviceId?

我一直试图使用p/invoke setupapi调用获取给定网络适配器的PnPDeviceId但没有成功.我不情愿地决定使用WMI,如下所示:

public static string GetPnpDeviceId(string mac)
{
    ManagementObjectCollection mo = Management.GetCollection("Win32_NetworkAdapter", "PNPDeviceID", "MACAddress = '" + mac + "'");
    return GetFirstValueString(mo, "PNPDeviceID");
}

public static ManagementObjectCollection GetCollection(string WMIClass, string WMISelect="*", string WMIWhere="")
{

    string qry = "SELECT " + WMISelect + " FROM " + WMIClass + (WMIWhere == "" ? "" : " WHERE " + WMIWhere);
    ObjectQuery oq = new System.Management.ObjectQuery(qry);
    ManagementObjectSearcher query = new ManagementObjectSearcher(oq);
    ManagementObjectCollection queryCollection = query.Get();
    return queryCollection;
}

public static string GetFirstValueString(ManagementObjectCollection …
Run Code Online (Sandbox Code Playgroud)

c# pinvoke network-programming

3
推荐指数
1
解决办法
1574
查看次数

标签 统计

c# ×1

network-programming ×1

pinvoke ×1