wince下DM9000A网卡驱动移植及学习总结---1

     wince下DM9000A网卡驱动移植及学习总结

函数层次调用关系:

    首先,对src\Dm9000a文件夹下的文件做一个说明:

    Driver.cpp文件中主要是驱动入口DriverEntry,设置一些对NDIS库的接口函数,形如MiniportXXXX,然后在MiniportXXXX的函数实现中调用:类: NIC_DRIVER_OBJECT的函数来实现功能,所MiniportXXXX层函数相当于调用类: NIC_DRIVER_OBJECTDriverXXXX函数,再继续查看DriverXXXX函数,会发现它们是调用NIC_DEVICE_OBJECT类的相应函数的

    Device.cpp主要实现的类:NIC_DEVICE_OBJECT的函数,但是这个类有很多虚函数,在Device.h中,而在Dm9isa.h中会发现下面语句:

                        Class              C_DM9000 : public NIC_DEVICE_OBJECT

    这样就会知道Device.h中的虚函数都是在Dm9isa.cpp文件中的类C_DM9000的函数实现真正功能的

    函数的层次调用基本就是这样,下面先大致介绍一些wince网络驱动,然后详细分析整个网卡驱动。

Wince网络驱动简介

1.  WinCE网络介绍:

  WinCE中,网络架构和windows系统差不多。通过NDISWinCE系统和网卡及网络协议进行交互。NDIS提供了一个完全的网络驱动的抽象层,目前WinCE支持NDIS5.1,其中包括对RNDISNDISWANToken Ring等的支持。在WinCE中,整个网络架构体系如图:

WinSock是提供给应用层的接口,一般开发网络应用都会用Winsock接口来开发。往下就是协议层,IrDATCP/IP都基于NDIS层以上,通过NDIS封装层和底层的驱动进行交互。NDIS包含了网卡的驱动,就是图中的Miniport Driver实际的网卡驱动就是指Miniport Driver,它向上为NDIS提供了Miniport相关的接口函数,向下则通过NDIS的接口来访问硬件网卡

2 WinCE网络驱动架构    

    在WinCE中,开发网卡驱动就是写一个Miniport Driver,导出相应的Miniport接口函数,调用NDIS的接口访问底层硬件。驱动架构如图:

    从图中清楚地看到Miniport driver所处的位置。在WinCE中支持三种类型的网络驱动:Miniport driverIntermediate driverProtocol driver。这里,只介绍针对硬件网卡的驱动,也就是Miniport driverMiniport driver直接管理硬件网卡,它使用NDIS Library中的接口函数读写硬件网卡,同时对上层导出Miniport接口函数,这样上层通过该接口可以配置网卡,发送和接收网络数据包。(以上是从网上下载的文章:《WinCE Network驱动开发简介》

中摘抄的,下面有些是摘自这篇文章)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值