45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何用程序禁用与启用网卡?

如何用程序禁用与启用网卡?

2016-09-05 12:24:45 来源:www.45fan.com 【

如何用程序禁用与启用网卡?

BOOL Disable_NetCard(bool bStatus)

{

GUID guid;

UuidFromString((unsigned char *)"4D36E972-E325-11CE-BFC1-08002BE10318", &guid);

DWORD NewState;

if(bStatus)

{

NewState=DICS_DISABLE;//禁用

}

else

{

NewState=DICS_ENABLE;//启用

}

//调用ddk函数,来禁用网卡

DWORD i;

BOOL Found=false;

HDEVINFO hDevInfo;

SP_DEVINFO_DATA spDevInfoData;

//访问系统的硬件库

hDevInfo=SetupDiGetClassDevs( &guid, NULL, NULL, DIGCF_PRESENT );

if (hDevInfo == INVALID_HANDLE_VALUE)

{

AfxMessageBox("访问系统硬件出错!");

return false;

}

//枚举硬件,获得需要的接口

memset( &spDevInfoData, 0, sizeof(SP_DEVINFO_DATA));

spDevInfoData.cbSize = sizeof(SP_DEVINFO_DATA);

for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&spDevInfoData);i++)

{

LPTSTR buffer = NULL;

DWORD buffersize = 0;

if (!SetupDiEnumDeviceInfo(hDevInfo, i, &spDevInfoData))

{

AfxMessageBox("SetupDiEnumDeviceInfo出错!");

return false;

}

//禁用该设备

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();

}

}

//退出时,清理工作环境

SetupDiDestroyDeviceInfoList(hDevInfo);

return true;

}

 

本文地址:http://www.45fan.com/a/question/72625.html
Tags: 程序 网卡 BOOL
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部