在线等:如何修改网卡工作模式/速度(up者有分)

Fiven_Luo 2003-11-20 08:44:40
加精
网卡有10M/100M的工作模式
在网卡属性里,我们可以通过修改link speed参数来修改
我想用编程方法来做,谁有方法可以介绍一下吗?
谢谢,急用
...全文
625 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fiven_Luo 2003-11-24
  • 打赏
  • 举报
回复
自己结贴:

#include <setupapi.h>

#pragma comment (lib,"setupapi")

#define UnknownDevice TEXT("<Unknown Device>")

HDEVINFO hDevInfo = 0;


BOOL StateChange(DWORD NewState, DWORD SelectedItem,HDEVINFO hDevInfo)
{
SP_PROPCHANGE_PARAMS PropChangeParams = {sizeof(SP_CLASSINSTALL_HEADER)};
SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};
HCURSOR hCursor;

//
// This may take a while :^(
//
hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));

//
// Get a handle to the Selected Item.
//
if (!SetupDiEnumDeviceInfo(hDevInfo,SelectedItem,&DeviceInfoData))
{
// printf("EnumDeviceInfo");
return FALSE;
}

//
// Set the PropChangeParams structure.
//
PropChangeParams.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
PropChangeParams.Scope = DICS_FLAG_GLOBAL;
PropChangeParams.StateChange = NewState;

if (!SetupDiSetClassInstallParams(hDevInfo,
&DeviceInfoData,
(SP_CLASSINSTALL_HEADER *)&PropChangeParams,
sizeof(PropChangeParams)))
{
// printf("SetClassInstallParams");
SetCursor(hCursor);
return FALSE;
}

//
// Call the ClassInstaller and perform the change.
//
if (!SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,
hDevInfo,
&DeviceInfoData))
{
// printf("SetClassInstallParams");
SetCursor(hCursor);
return TRUE;
}

SetCursor(hCursor);
return TRUE;
}


BOOL IsClassNet( GUID * ClassGuid )
{
#define MAX_NUM 50

HKEY hKeyClass;
LONG lRet;
char ClassType[MAX_NUM];
char NetClass[MAX_NUM] = "Net";
DWORD dwLength = MAX_NUM,dwType = REG_SZ;

if (hKeyClass = SetupDiOpenClassRegKey(ClassGuid,KEY_READ))
{
lRet = RegQueryValueEx(hKeyClass,
TEXT("Class"),
NULL, &dwType, LPBYTE(ClassType), &dwLength);
RegCloseKey(hKeyClass);

if (lRet != ERROR_SUCCESS)
return FALSE;

if (!strcmp(ClassType,NetClass))
return TRUE;
}

return FALSE;
}

int NetCtrl(DWORD state)
{
if (INVALID_HANDLE_VALUE == (hDevInfo =
SetupDiGetClassDevs(NULL,NULL,0,
DIGCF_PRESENT|DIGCF_ALLCLASSES)))
{
// printf("GetClassDevs");
return 1;
}

DWORD i, Status, Problem;
SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};

HKEY hKeyClass;
char DeviceName[200];
for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++)
{
if (IsClassNet(&DeviceInfoData.ClassGuid))
{
//printf(" the class's index is %d\n",i);
//
//DICS_DISABLE-->禁用网络
//DICS_ENABLE--->恢复网络
//
if (StateChange(state,i,hDevInfo))

{
// printf("NetWork enable");
return 0;
}

}
}

return 1;
}
awjx 2003-11-20
  • 打赏
  • 举报
回复
up
bubble222 2003-11-20
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2302/2302751.xml?temp=.586529
极具参考价值!!!!!!!!!!!!!!!!!!!!!!1
bubble222 2003-11-20
  • 打赏
  • 举报
回复
这个问题我以前问过,连等3天都没有人给出满意的解答,你可以看一下我的帖子
http://expert.csdn.net/Expert/topic/2235/2235741.xml?temp=.3922541
最后有个人给了个api,但是我还没有深入研究过,你看下,如果有什么进展大家说一下,我这边也一直在找方法,大家互相帮助了T_T
Re: 《Linux 系统管理命令》 ---------------------------------------内容提要: 01/20)命令lsof          :查看进程打开的文件02/20)命令uptime     :显示系统的运行时间及负载03/20)命令free          :查看系统内存信息04/20)命令iftop         :动态显示网络接口流量信息05/20)命令vmstat      :虚拟内存统计06/20)命令mpstat      :CPU信息统计07/20)命令iostat        :I/O信息统计08/20)命令 iotop        :动态显示磁盘 I/O 统计信息09/20)命令 sar            :收集系统信息10/20)命令 chkconfig :管理开机服务11/20)命令 ntsysv       :管理开机服务12/20)命令 setup        :系统管理工具13/20)命令 ethtool      :查询网卡参数14/20)命令 mii-tool     :管理网络接口的状态15/20)命令 dmidecode:查询系统硬件信息16/20)命令 lspci           :显示所有PCI设备17/20)命令 ipcs            :显示进程间通信设施的状态18/20)命令ipcrm          :清除ipc相关信息19/20)命令rpm             :RPM包管理器20/20)命令yum             :自动化RPM包管理工具  本人在教学和实战过程中发现,即便是有一定运维经验的人,可能已经能够搭建一定复杂度的Linux架构,但是在来来回回的具体操作中,还是体现出CLI(命令界面)功底不够扎实,甚至操作的非常‘拙’、处处露‘怯’。 对一个士兵来说,枪就是他的武器,对于一个程序员来说,各种library(工具库)就是他的武器;而对于Linux运维人员来说,无疑命令行工具CLI(命令界面)就是他们的武器;高手和小白之间的差距往往就体现在对于这些“武器”的掌握和熟练程度上。有时候一个参数就能够解决的事情,小白们可能要写一个复杂的Shell脚本才能搞定,这就是对CLI(命令界面)没有理解参悟透彻导致。 研磨每一个命令就是擦拭手中的作战武器,平时不保养不理解,等到作战的时候,一定不能够将手中的武器发挥到最好,所以我们要平心、静气和专注,甘坐冷板凳一段时间,才能练就一身非凡的内功! 本教程从实战出发,结合当下流行或最新的Linux(v6/7/8 版本)同时演示,将命令行结合到解决企业实战问题中来,体现出教学注重实战的务实精神,希望从事或未来从事运维的同学,能够认真仔细的学完Linux核心命令的整套课程。 本课程系列将逐步推出,看看我教学的进度和您学习的步伐,孰占鳌头! 注:关于教学环境搭建,可以参考本人其它课程系列,本教学中就不再赘述! 《参透 VMware 桌面级虚拟化》 《在虚拟机中安装模版机(包括应用软件等)》 《SecureCRT 连接 GNS3/Linux 的安全精密工具》 

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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