用C语言实现禁用网卡的代码

#include <stdio.h>
#include <windows.h>
#include <Setupapi.h>
#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*)&params, 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;
}

时间: 2024-10-10 12:33:12

用C语言实现禁用网卡的代码的相关文章

erilog-用verilong语言编写一个走马灯的代码

问题描述 用verilong语言编写一个走马灯的代码 多模式LED发光控制器(Basys3)1)采用16个并排LED实现跑马灯发光器件:2)具有异步复位功能(按钮),复位时,LED全亮:3)模式选择(利用两位滑动开关):00-左循环跑马灯,01-右循环跑马灯,10-交叉闪烁跑马灯,11-全亮全灭闪烁4)速度选择(利用两位滑动开关):通过00-11实现四个速度等级的闪烁效果 解决方案 参考http://download.csdn.net/detail/xkdhdl/1745598http://ww

asp.net下按钮点击后禁用的实现代码

一.让按钮在点击后用脚本使其禁用: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="DisableButton.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//

WindowsXP系统启用被禁用网卡的方法

  WindowsXP系统启用被禁用网卡的方法           具体方法如下: 1.首先需要右击桌面"我的电脑"图标选择"管理"选项卡; 2.点击左侧"设备管理器"选项之后看到右侧网卡为"禁用状态"; 3.此时需要"右击"被禁用的网卡设备点击"启用"; 4.再次查看设备管理器,网卡已经被启用了.

win7系统下快速批量开启/禁用网卡的方法

对于无线网卡,Win7笔记本用户应该都不会陌生,许多笔记本用户都是在自己的电脑上安装了无线网卡之后,使用无线网络进行联网的,不过对于一些有线用户来说,无线网卡就显得并不太重要了.因此,今天小编就教大家如何使用批处理开启和关闭无线网卡吧. 通过批处理开启或关闭无线网卡的方法: 1.看自己的电脑是否有devcon.exe 这个软件,可以直接在WINDOWS目录的SYSTEM32文件夹下面搜索,也可以通过命令行RUN-----------CMD-------DEVCON?来检测,没有的话到微软的网站下

printf-c语言分数加减法 我的代码哪里有错?

问题描述 c语言分数加减法 我的代码哪里有错? 描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据 每行数据是一个字符串,格式是"a/boc/d". 其中a, b, c, d是一个0-9的整数.o是运算符"+"或者"-". 数据以EOF结束 输入数据保证合法 输出 对于输入数据的每一行输出两个分数的运算结果. 注意结果应符合书写习惯,没有多余的符号.分子.分母,并且化简至最简分数 样例输入 1/8+3/8 1/4-1/2 1/3-

c-C语言输出数字团,代码为什么出现Segmentation fault,求解释并纠错??

问题描述 C语言输出数字团,代码为什么出现Segmentation fault,求解释并纠错?? //题目:输出字符串里数字团,以及个数.比如89cy129 //就输出89,129,一共2个数. 代码在这个百度知道的问题上:well,看来百度知道上面没有人会做? 跪谢!!! 源代码: include int main() { int a[80],i=0,*pa,an=0; char str[80],*pstr=str; void getnum(char pstr); gets(str); get

printf-c语言 数列求和 我的代码哪里有错

问题描述 c语言 数列求和 我的代码哪里有错 描述 有一分数序列: 2/3,3/5,5/7,8/9,13/11,21/13,...,求出这个数列的前n项之和. 输入 只有一组数据,从键盘输入待求的前n项(n<=40). 输出 在一行上输出前n项之和,结果保留2位小数. 样例输入 5 样例输出 4.05 提示 由于float型和double型的精度有差异,本题需要注意使用float型定义变量.(测试数据是按照float型计算得出的) 我的代码: #include int main() { int

u盘-基于C语言的U盘格式化代码

问题描述 基于C语言的U盘格式化代码 本人要做一款保护软件,为防止U盘里有木马程序,在接入内部网时需要自动对U盘格式化,希望哪个大神能帮帮忙,给点建议. 解决方案 如果你要在应用层完成这个功能,那还真不了解. 如果写固件代码的话,那倒是还可以实现. U盘分为普通存储区和 固件代码区,而固件代码区就是 帮助电脑识别U盘,组织好文件系统的那部分程序. 这部分程序 一般在U盘出厂的时候,已经烧写好了,默认情况下,用户根本接触不到这些代码,所以更不用说去修改了. 只是说说,没思路,哈哈

sdl-求一个用C语言+SDL编写俄罗斯方块的代码

问题描述 求一个用C语言+SDL编写俄罗斯方块的代码 跪求一个用C语言+SDL编写俄罗斯方块的代码,实在是不理解,求救 解决方案 http://blog.csdn.net/sinat_22657459/article/details/43762831 解决方案二: http://wenku.baidu.com/link?url=s7tecFl56PbYskhLPNApD-hSmCIyT638XlFeOTIcRaTenPDYef_y3cqJbUtvhMg7Lfep2HqmvDTL55aCeGTwe