网卡禁用和启用
来源:互联网 发布:js修改offsetleft 编辑:程序博客网 时间:2024/06/02 19:56
2010-11-10 21:34:23
#include <stdio.h>
#include <windows.h>
//#include "Setupapi.h"
//#include "objbase.h"
#include <setupapi.h>
#pragma comment(lib,"setupapi.lib")
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.StateChange = DICS_ENABLE; //禁用:DICS_DISABLE,DICS_ENABLE启用
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;
}
#include <windows.h>
//#include "Setupapi.h"
//#include "objbase.h"
#include <setupapi.h>
#pragma comment(lib,"setupapi.lib")
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.StateChange = DICS_ENABLE; //禁用:DICS_DISABLE,DICS_ENABLE启用
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;
}
- 网卡禁用和启用
- 禁用和启用网卡.使用windows DDK
- Linux中启用和禁用网卡
- 禁用启用网卡
- 禁用/启用网卡
- 禁用/启用网卡
- 网卡禁用启用,usb监测,禁用启用
- bat控制网卡禁用和启用(不用DevCon工具)
- bat脚本控制网卡的禁用和启用
- 编程实现启用禁用网卡
- 程序禁用启用网络/网卡
- 网卡禁用 启用演示程序
- 用SetupDi* 启用/禁用网卡
- c# 启用禁用指定网卡
- netsh之禁用、启用网卡
- 禁用和启用监听
- 启用和禁用控件
- 演示如何编程实现启用禁用网卡
- 解决办法之“超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小 ”
- 循环你应该这样写
- 常用内部排序的实现
- 华为,工资岗位揭秘 2010年08月02日
- 冒泡法排序
- 网卡禁用和启用
- VS2008 新建项目提示无法识别工具版本3.5
- C#中请问如何在串口通讯中接收输出HEX格式数据
- 计算运行时间
- 2010年10月blog汇总:敏捷练习和建模
- VC常用控件介绍
- POJ 1047
- WCF概述
- Hadoop学习总结之二:HDFS读写过程解析