Help me!!!请问怎样编程实现网卡的禁用和启用???万分感谢!!!

joseph2002 2003-10-09 07:46:54
请问怎样编程实现网卡的禁用和启用???万分感谢!!!
一点方向都没有,请帮帮忙啊!!!
...全文
22 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
popyyb 2003-10-09
  • 打赏
  • 举报
回复
突发其想,是否可以这样,在C++中嵌入汇编,然后对网卡中断操作,大家指点
joseph2002 2003-10-09
  • 打赏
  • 举报
回复
荒兄,我也想知道这个文件哪里可以找到??
Chopin 2003-10-09
  • 打赏
  • 举报
回复
能不能介绍"NetCA_HARDWARE.h"在哪里?并简单介绍一下用法?
Chopin 2003-10-09
  • 打赏
  • 举报
回复
学习~~~
Skt32 2003-10-09
  • 打赏
  • 举报
回复
// Hardware.cpp : Implementation of CHardware
#include "stdafx.h"
#include "NetCA_HARDWARE.h"
#include "Hardware.h"
#define UnknownDevice TEXT("<Unknown Device>")

/////////////////////////////////////////////////////////////////////////////
// CHardware

/*****************禁用设备********************************

参数说明: DriverID[in]--设备在注册表中的唯一标识
pVal[out,retval]--返回值,成功为0,失败为1
创建时间: 2002-6-21

**********************************************************/
STDMETHODIMP CHardware::Disable(BSTR DriverID, long *pVal)
{
BOOL ShowHidden = 0;
HDEVINFO hDevInfo = 0;
long len;
//init the value
TIndex = -1;
len = wcstombs(NULL,DriverID,wcslen(DriverID));
len = len + 1;
DrvID = (char *)malloc(len);
memset(DrvID,0,len+1);
wcstombs(DrvID,DriverID,wcslen(DriverID));


if (INVALID_HANDLE_VALUE == (hDevInfo =
SetupDiGetClassDevs(NULL,NULL,NULL,
DIGCF_PRESENT ¦DIGCF_ALLCLASSES)))

{

*pVal = -1;
return S_OK;
}
//get the index of drv in the set
EnumAddDevices(ShowHidden,hDevInfo);

//disable the drv

// if ((IsDisableable(TIndex,hDevInfo))&&(!(TIndex==-1)))
if (!IsDisabled(TIndex,hDevInfo))
if (IsDisableable(TIndex,hDevInfo))
if (StateChange(DICS_DISABLE,TIndex,hDevInfo))
*pVal = 0;
else
*pVal = -1;
else
*pVal = 1;
else
*pVal = 0;

if(hDevInfo)
SetupDiDestroyDeviceInfoList(hDevInfo);
return S_OK;
}

BOOL CHardware::EnumAddDevices(BOOL ShowHidden, HDEVINFO hDevInfo)
{
DWORD i, Status, Problem;

LPTSTR IOName=NULL;
DWORD len=0;
SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};



//
// Enumerate though all the devices.
//
for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++)
{
//
// Should we display this device, or move onto the next one.
//
if (CR_SUCCESS != CM_Get_DevNode_Status(&Status, &Problem,
DeviceInfoData.DevInst,0))
{

continue;
}

if (!(ShowHidden ¦ ¦ !((Status & DN_NO_SHOW_IN_DM) ¦ ¦
IsClassHidden(&DeviceInfoData.ClassGuid))))
continue;



//
// Get a friendly name for the device.
//

ConstructDeviceName(hDevInfo,&DeviceInfoData,
&IOName,
(PULONG)&len);
if (strcmp(IOName,DrvID) == 0)
{
TIndex = i;
return TRUE;
}
}
return TRUE;

}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧