日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

编程实现启用禁用网卡

發(fā)布時(shí)間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程实现启用禁用网卡 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/*****************************************************************************
演示如何編程實(shí)現(xiàn)啟用禁用網(wǎng)卡
Mady By ZwelL
2004.7.29
zwell@sohu.com
*****************************************************************************/
#include <windows.h>
#include <setupapi.h>
#include <tchar.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib,"setupapi.lib")

BOOL DisableNetInterface(bool bStatus)
{
????IN LPTSTR HardwareId ;
????//硬件ComponentId,注冊(cè)表地址:system/currentcontrolset/class/{4D36E972-E325-11CE-BFC1-08002BE10318}/0000
????
????HardwareId="PCI//VEN_10EC&DEV_8139&SUBSYS_813910EC" ;
????
????DWORD NewState ;
????
????if(bStatus)
????{
????????NewState=DICS_DISABLE ;
????????//禁用
????}
????else
????{
????????NewState=DICS_ENABLE ;
????????//啟用
????}
????
????//調(diào)用ddk函數(shù),來(lái)禁用網(wǎng)卡
????
????DWORD i,err ;
????BOOL Found=false ;
????
????HDEVINFO hDevInfo ;
????SP_DEVINFO_DATA spDevInfoData ;
????
????//訪問(wèn)系統(tǒng)的硬件庫(kù)
????hDevInfo=SetupDiGetClassDevs(NULL,"PCI",NULL,DIGCF_ALLCLASSES|DIGCF_PRESENT);
????if(hDevInfo==INVALID_HANDLE_VALUE)
????{
????????printf("訪問(wèn)系統(tǒng)硬件出錯(cuò)!");
????????return false ;
????}
????
????//枚舉硬件,獲得需要的接口
????spDevInfoData.cbSize=sizeof(SP_DEVINFO_DATA);
????for(i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&spDevInfoData);i++)
????{
????????DWORD DataT ;
????????LPTSTR p,buffer=NULL ;
????????DWORD buffersize=0 ;
????????
????????//獲得硬件的屬性值
????????while(!SetupDiGetDeviceRegistryProperty(
????hDevInfo,
????&spDevInfoData,
????SPDRP_HARDWAREID,
????&DataT,
????(PBYTE)buffer,
????buffersize,
????&buffersize))
????????{
????????????if(GetLastError()==ERROR_INVALID_DATA)
????????????{
????????????????//不存在HardwareID. Continue.
????????????????break ;
????????????}
????????????else if(GetLastError()==ERROR_INSUFFICIENT_BUFFER)
????????????{
????????????????//buffer size不對(duì).
????????????????if(buffer)
????????????????LocalFree(buffer);
????????????????buffer=(char*)LocalAlloc(LPTR,buffersize);
????????????}
????????????else
????????????{
????????????????//未知錯(cuò)誤
????????????????goto cleanup_DeviceInfo ;
????????????}
????????}
????????
????????if(GetLastError()==ERROR_INVALID_DATA)
????????continue ;
????????
????????//比較,找到和網(wǎng)卡ID相同的項(xiàng)
????????for(p=buffer;*p&&(p<&buffer[buffersize]);p+=lstrlen(p)+sizeof(TCHAR))
????????{
????????????
????????????if(!_tcscmp(HardwareId,p))
????????????{
????????????????//找到網(wǎng)卡
????????????????Found=TRUE ;
????????????????break ;
????????????}
????????}
????????
????????if(buffer)
????????LocalFree(buffer);
????????
????????//如果相等
????????if(Found)
????????{
????????????//禁用該設(shè)備
????????????
????????????SP_PROPCHANGE_PARAMS spPropChangeParams ;
????????????
????????????spPropChangeParams.ClassInstallHeader.cbSize=sizeof(SP_CLASSINSTALL_HEADER);
????????????spPropChangeParams.ClassInstallHeader.InstallFunction=DIF_PROPERTYCHANGE ;
????????????spPropChangeParams.Scope=DICS_FLAG_GLOBAL ;
????????????spPropChangeParams.StateChange=NewState ;
????????????//禁用:DICS_DISABLE,DICS_ENABLE啟用
????????????
????????????//
????????????if(!SetupDiSetClassInstallParams(hDevInfo,&spDevInfoData,(SP_CLASSINSTALL_HEADER*)&spPropChangeParams,sizeof(spPropChangeParams)))
????????????{
????????????????DWORD errorcode=GetLastError();
????????????}
????????????
????????????if(!SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,hDevInfo,&spDevInfoData))
????????????{
????????????????DWORD errorcode=GetLastError();
????????????}
????????????
????????????switch(NewState)
????????????{
????????????????case DICS_DISABLE :
???? printf("成功禁用網(wǎng)絡(luò)!");
????????????????break ;
????????????????case DICS_ENABLE :
???? printf("成功啟用網(wǎng)絡(luò)!");
????????????????break ;
????????????}
????????????
????????????break ;
????????}
????????
????}
????
????//退出時(shí),清理工作環(huán)境
????cleanup_DeviceInfo :
????err=GetLastError();
????SetupDiDestroyDeviceInfoList(hDevInfo);
????SetLastError(err);
????
????return true ;
}

void usage(char *exefile)
{
printf("Usage:%s [-e|-d]/r/n", exefile);
printf("/t-e: Enable the network card./r/n");
printf("/t-d: Disable the network card./r/n");
exit(0);
}


int main(int argc,char**argv)
{
if(argc<2)
??usage(argv[0]);
if(!DisableNetInterface((strstr(argv[1],"-d")>0?TRUE:FALSE)))
??printf("對(duì)網(wǎng)卡操作失敗!");
????return 0;
}
---
Welcome to my blog:

總結(jié)

以上是生活随笔為你收集整理的编程实现启用禁用网卡的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 名人明星三级videos | 亚洲天堂av在线免费观看 | 波多野结衣人妻 | wwwxxxx国产 | 成人免费激情视频 | 九九九久久久精品 | 国产视频导航 | 深夜福利麻豆 | 在线观看少妇 | 国产精品久久久国产盗摄 | 亚洲视频福利 | av高清| 午夜精品久久久久久久久久 | 91美女视频 | 久久11| 亚洲人成人无码网www国产 | 最近最新中文字幕 | 免费精品视频在线观看 | 日韩视频在线播放 | 欧美色图激情小说 | 中文字幕第27页 | 91精品一区 | 国产一级aa大片毛片 | 欧美日日操 | 久av在线| 亚洲欧美在线视频免费 | 国产一区二区三区精品在线观看 | 91视频精选 | 91国模少妇一区二区三区 | 欧美精品一区在线观看 | 亚洲1234区 | 亚洲av日韩av不卡在线观看 | 日本一区二区在线不卡 | 啪啪小视频| 性高潮视频在线观看 | 涩涩视频在线观看免费 | 国产欧美久久一区二区三区 | 亚洲一区二区免费在线观看 | 91抖音在线观看 | 韩日黄色片| 午夜黄色大片 | 日韩电影一区二区三区四区 | 婷婷激情社区 | 久久精品综合网 | 亚洲AV乱码国产精品观看麻豆 | 国产视频精品自拍 | 精品一区二区三区不卡 | 男女视频在线免费观看 | 一级片中文| 深夜福利国产精品 | 久久久久亚洲av成人网人人软件 | 国产美女主播 | 一色屋免费视频 | 亚洲综合成人亚洲 | www.性欧美 | 天天爽网站 | 久久精品视频9 | 成人免费毛片网站 | 狠狠人妻久久久久久综合麻豆 | 国产又粗又大又爽视频 | 天天色天天色天天色 | 国产精品调教 | 国产深喉视频一区二区 | 狠狠搞av | 久久精品免费在线 | 神马午夜伦理 | 欧洲一区二区三区 | 精品少妇爆乳无码av无码专区 | 亚洲成人av综合 | 日本不卡网站 | 精品人妻一区二区三区日产 | 国产免费自拍视频 | 国产.com| 国产伦精品一区二区三区视频黑人 | 亚洲电影在线观看 | 国产精品无码成人片 | 久久久久久久穴 | 中文字幕乱码亚洲无线三区 | 色哟哟精品一区 | 狠狠干青青草 | 久草福利网 | 久久精品激情 | 99蜜桃臀久久久欧美精品网站 | 韩国一级淫片免费看 | 97视频入口 | 日韩夫妻性生活 | 亚洲永久精品ww.7491进入 | 欧美二级片 | av自拍 | 一本大道东京热无码 | 久久久久人妻精品一区二区三区 | 91av高清| 日韩毛片网 | av在线播放中文字幕 | 精品无码国产污污污在线观看 | 女生喷液视频 | 五月激情天 | 丰满的人妻hd高清日本 | 91精品国产综合久久香蕉922 |