阅读:2212回复:5
在WINDOWS 2000 下如何检测网卡的网线已被拔掉?
当把网线拔掉后,Windows会弹出“网络电缆没插好”的提示框。可是应用程序怎样获得网线已被拔掉的信息?
|
|
沙发#
发布于:2003-12-19 13:47
有消息通知。
应用程序可以去查询网卡的连接状态。 |
|
|
板凳#
发布于:2003-12-19 14:20
谢谢了。
是哪个消息?如何查询网卡状态?可否说详细一点? |
|
地板#
发布于:2003-12-30 10:07
怎么没人问津呢?是不是太简单了?
帮帮我! |
|
地下室#
发布于:2003-12-30 20:29
没插好和被拔掉有什么差别吗?
还是你是说把网卡disable? |
|
5楼#
发布于:2003-12-31 08:54
发信人: rain (夜猫子大王), 信区: SysInternals
标 题: Re: 请问实时发现网络down掉的原理?(转载) 发信站: 武汉白云黄鹤站 (2001年03月31日09:57:05 星期六), 转信 实时检测网线被拔掉是需要网卡设备驱动程序支持的, 如果驱动程序不支持是无法实现的,NDIS4要求设备驱动程序 最好提供CheckForHangHandler回调函数。2000会每隔2秒钟 调用此函数。驱动程序在此函数中检查网卡连线状态, 如果发生了改变,即拔去了网线或接上了网线, 驱动程序就会调用NdisMIndicateStatus通知所有的上层NDIS协议驱动程序. 其中: NDIS_STATUS_MEDIA_DISCONNECT 指示网线被拔掉, NDIS_STATUS_MEDIA_CONNECT 指示网线被接上 NDIS_STATUS_LINK_SPEED_CHANGE 指示网卡速度改变,10/100自适应网卡才有。 网卡一般都有 status register 指示当然的连线状态, 也有网卡是通过获得 led status 来知道当前的连线状态的, 即绿灯亮表示连线,灭表示没有。 有些网卡拔掉或接上网线时会产生中断,在中断处理程序中一般也 检测网络连线状态并调用NdisMIndicateStatus,这样连线状态 在2000中就实时反应出来了,否则会在2秒钟内,即NDIS调用CheckForHangHandler后。 这个功能是微软在PC97规范中定义的,所以ndis3没有这个功能。 linux对这个没有要求,novell netware对这个有要求,其它的操作系统我也不清楚。 |
|