aben1223
驱动小牛
驱动小牛
  • 注册日期2004-11-29
  • 最后登录2007-06-01
  • 粉丝1
  • 关注0
  • 积分1000分
  • 威望201点
  • 贡献值0点
  • 好评度192点
  • 原创分2分
  • 专家分0分
阅读:906回复:0

问题7,帮帮忙,谢谢

楼主#
更多 发布于:2005-05-16 23:56
.虽然我并不是使用Indicatepacket的方式来支持多包接受,但我一直想搞明白Descriptor这个描述符,我看了USBNIC和E100BEX的例子就是还不明白,他是不是一有数据就已经写入内存了阿,还有它是怎么运作的。是不是需要硬件有特别的处理。虽然我没有使用这种方法来实现我的接收,但是我还是满想了解这种方式的。感觉跟NdisAllocatePacketPool,NdisAllocateBufferPool等一些函数有关系。但是它到底是怎么实现的。如果是在DriverNetWorks里面就是用一个类KndisSharedReceiveArea把所有的包装好了。很简单的,但就是太简单了反而看不出它是怎么实现的。它把一大串数据写入内存,它怎么将它拷入事先初始化的RFD中。还有知道它的每一帧长度。这么多帧的数据在一起不会乱掉吗?但是在处理接收中断的时候倒是满简单的,从一个队列读出一个RFD,然后得到它的帧的长度AdjustLength就行了。感觉就像我事先分配一个一个包的内存,然后让DMA把数据拷贝到这里面就是了。我也不太清楚,有没有大侠可以给些资料或者具体介绍一下这是怎么实现的。
   这个方式下的接收,是不是硬件有特殊的处理。感觉太简单也太生气了。我看了3个这样的例子,一点也不明白它到底是怎么实现的。
周维彬
游客

返回顶部