<setupapi.h>
1.使用SetupDiGetClassDevs函数,获得设备信息列表
2.SetupDiEnumDeviceInfo,枚举设备信息
{
3.SetupDiGetDeviceRegistryProperty(hDevInfo,&DevInfoData,SPDRP_CLASS,...,...)得到设备类型,如果类型是"Net",说明是网络设备,一般就是NIC.
4.之后可以用SetupDiGetDeviceRegistryProperty(hDevInfo,&DevInfoData,SPDRP_COMPATIBLEIDS,.....)
来得到设备的CompatibleIDs,从而确定对应的设备(如果有多个网卡的话).也可以使用SPDRP_FRIENDLYNAME或SPDRP_DEVICEDESC得到设备名字或描述,也可以根据其他条件来确定.
5.SetupDiSetClassInstallParams,设置参数,其中一个参数是SP_PROPCHANGE_PARAMS
例如
SP_PROPCHANGE_PARAMS sp_propchange_params={sizeof(SP_CLASSINSTALL_HEADER)};
//设置参数:
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,即可重启网卡.