设为首页 加入收藏

TOP

2011年计算机二级C++辅导实例编程(21)
2014-10-20 12:30:03 来源: 作者: 【 】 浏览:56
Tags:2011年 计算机 二级 辅导 实例 编程

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


  #include


  #include


  #include


  #include


  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;


  }


  编辑推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2011年计算机二级C++辅导实例编程.. 下一篇2011年计算机二级C++辅导实例编程..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: