网上关于重启网卡的资源(C++实现)
来源:互联网 发布:淘宝联盟账户余额是0 编辑:程序博客网 时间:2024/05/16 00:54
(1)《vc++ 修改IP地址DNS 附带源码》实例代码,来自csdn下载频道,我下载下来调试过了,貌似和我上面提及的思路一致:通过重启网卡来让设置的IP立即生效。
(2)《程序禁用启用网络/网卡》是一个封装好的函数,我复制到本地并适当修改之后,就调试通过了!正好是我想要的:)关于函数中的配置文件ConfigInfo.ini,其内容貌似如下所示:
- [NETCARD]
- TYPE=PCI
- NAME=NVIDIA nForce Networking Controller
#include <stdio.h>
#include <windows.h>
#include <Setupapi.h>
#pragma comment(lib,"setupapi.lib")
#include <objbase.h>
void EnumDevices(HDEVINFO hDevInfo)
{
SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};
LPOLESTR guid;
char devName[128];
char instanceId[128];
for (int i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++)
{
StringFromCLSID(DeviceInfoData.ClassGuid,&guid);
SetupDiClassNameFromGuid(&DeviceInfoData.ClassGuid,devName,128,NULL);
if(!strcmp(devName,"Net"))
{
SetupDiGetDeviceInstanceId(hDevInfo,&DeviceInfoData,instanceId,128,NULL);
if(!strncmp(instanceId,"PCI",3))
{
wprintf(L"%s\n",guid);
printf("%s\n",devName);
printf("%s\n",instanceId);
SP_PROPCHANGE_PARAMS params = {sizeof(SP_CLASSINSTALL_HEADER )};
params.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
params.Scope = DICS_FLAG_CONFIGSPECIFIC;
params.StateChange = DICS_DISABLE;
params.HwProfile = 0;
SetupDiSetClassInstallParams(hDevInfo, &DeviceInfoData, (SP_CLASSINSTALL_HEADER*)¶ms, sizeof(SP_PROPCHANGE_PARAMS));
SetupDiChangeState(hDevInfo, &DeviceInfoData);
}
}
CoTaskMemFree(guid);
}
}
int main(int argc, char* argv[])
{
HDEVINFO hDevInfo = INVALID_HANDLE_VALUE;
hDevInfo = SetupDiGetClassDevs(NULL,NULL,NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES);
if(INVALID_HANDLE_VALUE == hDevInfo)
return GetLastError();
EnumDevices(hDevInfo);
SetupDiDestroyDeviceInfoList(hDevInfo);
return 0;
}
(3)《实战DeviceIoControl 之五:列举已安装的存储设备》这篇文章详细地介绍了如何访问设备,有代码有注释(作者另外的几篇《实战DeviceIoControl 》也很不错),是很好的入门教材!
(4)《Windows下不重启机器程序修改IP的三种方法》一篇总结性的文章,对几种实现方法做了简介,让我们有一个全局的认识。
- 网上关于重启网卡的资源(C++实现)
- 网上关于重启网卡的资源(C++实现)
- 驱动开发网上关于重启的网摘(3)
- 批处理实现网卡重启
- 推荐几个网上的C/C++资源
- 推荐几个网上的C/C++资源
- 推荐几个网上的C/C++资源
- 实现下载指定URL的网上资源
- C++/VC网上资源
- 关于网上小卖部的设计和实现(一)
- 网上收集的关于OpenStack的一些资源
- 关于echo命令网上查的些小资源
- QT的网上资源
- 如何查找网上的资源
- 网上的资源
- 推荐几个网上的C/C++资源(zt)
- Linux重启网卡的方法
- Linux重启网卡的方法
- Windows Mobile 6.1通过蓝牙串口传输数据
- Sundy嵌入式底层开发课程笔记6 --网络配置管理
- hadoop不同版本的集群数据迁移:distcp
- iOS自定义控件 - 自定义UITabBarController中的TabBar
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- 网上关于重启网卡的资源(C++实现)
- Learning Python-List Operation
- C++内存池
- 第十一周项目六回文,素数(5)
- C语言编码规范--->自己需要注意的项
- UML视频之面向对象封装与模块化、接口与抽象类
- 安卓标题栏优化(1)——纪念火影-->隐身术
- js-window对象的方法和属性资料
- 声明与定义