許多網絡卡修改mac後需要重啟才能生效,下面介紹一下用程式設計實現重啟網絡卡的功能:
標頭檔案:
#include
api:
1.setupdigetclassdevs
獲得裝置資訊列表
2.setupdienumdeviceinfo
列舉裝置資訊
迴圈查詢:
;//設定引數:
sp_propchange_params.classinstallheader.installfunction = dif_propertychange;
sp_propchange_params.scope = dics_flag_global;
sp_propchange_params.statechange = dics_disable(or dics_enable);
6.setupdicallclassinstaller(dif_propertychange,hdevinfo,pdevinfodata)
使設定生效.
}使用同樣的方法,先dics_disable再dics_enable,即可重啟網絡卡.
///看看例子//來自csdn
bool cnetcardstateset::netcardstatechange(void * netcardpoint, bool enabled)
/*setupdigetclassdevs(
(lpguid) &guid_devclass_net, // guid_devclass_net表示僅列出網路裝置
null,
this->m_hwnd,
digcf_present);
*/sp_devinfo_data deviceinfodata = ;
dword status, problem;
if (!setupdienumdeviceinfo(hdevinfo,deviceid,&deviceinfodata)) //
return false;
if (cm_get_devnode_status(&status, &problem,
deviceinfodata.devinst,0) != cr_success) //讀取網絡卡狀態
return false;
sp_propchange_params propchangeparams = ;
propchangeparams.classinstallheader.installfunction = dif_propertychange;
propchangeparams.scope = dics_flag_global;
if (enabled)
propchangeparams.statechange = dics_enable;
} else
if (!((status & dn_disableable) && (cm_prob_hardware_disabled != problem)))
return false;
propchangeparams.statechange = dics_disable;
} if (!setupdisetclassinstallparams(hdevinfo, &deviceinfodata,(sp_classinstall_header *)&propchangeparams, sizeof(propchangeparams)))
if (!setupdicallclassinstaller(dif_propertychange, hdevinfo, &deviceinfodata))
if (cm_get_devnode_status(&status, &problem,deviceinfodata.devinst,0) == cr_success)
return true;
}
重啟網絡卡失敗
命令列中輸入網絡卡重啟命令ifdown eth0 ifup eth0出現如下錯誤 job for network.service failed because the control process exited with error code.see systemctl status networ...
wince中重啟網絡卡
下面先貼出我的 wchar name t cs89001 0 handle m hfilehandle createfile t nds0 0,0,null,open existing,file attribute normal,handle invalid handle value if m hf...
sa 網絡卡自動重啟
上周五有開發反應一台機器的網路有問題,eth0的網路包接受有錯誤,具體如下 eth0 link encap ethernet hwaddr bc 30 5b f7 99 94 broadcast multicast mtu 1500 metric 1 rx packets 22258496272 e...