我一直试图使用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)