我已经写了一个修改网卡的物理地址的小程序 
就是在注册表下
SYSTEM\\ControlSet001\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\0007 添加一个NerwokAddress的数据项  但前提是 在该0007的字表中 DriverDesc的数据值必须为物理网卡的设备描述
如:Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller  
   现在发现在不同的电脑上 物理有线网卡的的描述可能会在不同的{4D36E972-E325-11CE-BFC1-08002BE10318}下的字表中
  从0000-0009
 我现在就是想通过0000-0009的DriverDesc的数据值中是否含有 “Ethernet” 或者 “以太”这两个关键字判断是不是物理网卡void CMyDlg::OnButtonRefresh() 
{
  
HKEY hKey;
DWORD dwType;
DWORD dwValue;
CString pChar;
char StrTemp='1'; while(StrTemp<='9')
{
m_KeyPath.SetAt(m_KeyPath.GetLength()-1,StrTemp);//修改最后一个字符 RegOpenKey(HKEY_LOCAL_MACHINE,m_KeyPath,&hKey);//打开最后修改字符后的注册表地址 RegQueryValueEx(hKey,"DriverDesc",0,&dwType,(LPBYTE)(LPCTSTR)pChar,&dwValue);//读取注册
//表的DriveDesc的值 if (pChar.Find("Ethernet")!=-1  ||  pChar.Find("以太")!=-1)//判断是否
{
                          MessageBox("find it!");
break;
   
}
else StrTemp++;
RegCloseKey(hKey);//关闭注册表的 Handle 
}
MessageBox(pChar);//显示找到的物理网卡的设备描述
   RegCloseKey(hKey); 
}