阅读:1679回复:3
网卡驱动中的网络地址
在网卡驱动中我遇到这样两个地址。PERMANENT_ADDRESS: 和
CURRENT_ADDRESS: 不知这两个地址有什么区别? |
|
最新喜欢:![]() |
沙发#
发布于:2002-04-25 15:30
PERMANENT_ADDRESS: 以太网卡就是mac地址
你可以用NdisRequest跟一下passthru |
|
板凳#
发布于:2002-04-25 22:07
那CURRENT_ADDRESS代表什么?
|
|
地板#
发布于:2002-04-25 23:03
在网卡驱动中我遇到这样两个地址。PERMANENT_ADDRESS: 和 我好长时间不干这个了,凭印象说,错了算我糊涂了。 前一个是物理地址,后一个是MAC地址,或者说工作地址。 你明白吗?网卡自己有一个地址,多半是在EEPROM的,通过 端口或内存MAP可以获得,但是网卡DRIVER使用什么地址全 凭DRIVER自己愿意。因此,网卡DRIVER可以使用任意地址 (当然不能用FFFFFFFF等)。DNIS推荐的方法是DRIVER在 启动的时候去找注册表,如果找到了某处(地址我忘了) 发现用户希望它用另外一个地址,它就毫不犹豫的用了。 某些网卡DRIVER安装之后控制面版中提供这个输入对话框。 DRIVER启动的时候如果发现这个注册表项为空,那么就 用前一个地址做为工作地址。 NDISREQUEST有两个不同的OID可以分别获得这两个地址。 ClassID里面的地址是后一个地址,netbios的方法也是 后一个地址,我目前没有发现不通过直接打开网卡设备 能够获取前一个地址的方法。ddk中有一个sample,叫做 getmacaddr(may,我也忘了),你可以参考,这只是一个 app,所以可以很方便的用于自己的程序。这个sample 也是读后一个地址,但是你只要修改一个oid,就可以 读前一个地址。 本站精华区有我的一篇文章详细描述两者的区别,好像 在一个文章集里面,标题好像是谈网络数据加密。 或者到BBS.WHNET.EDU.CN,SYSINTERNALS版精华区。 |
|
|