点击这里给我发消息 点击这里给我发消息

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

添加时间:2013-12-7
    相关阅读: 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;
}

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

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册