阅读:1810回复:9
请教NDIS IMD的数据接收流程
各位开发过NDIS IMD的前辈,小弟看了好几天的passthru,却不知如何动手实现接收数据的截取,关键是这个流程没弄明白,下面是我的几点疑问,恳请指点,节省我几个晚上熬夜。
玩过这个的都知道PtReceive是必须的,我的问题就只涉及它。PtReceive会面对两种数据接收情况:1).LookAheadBuffer里包含了完整的IP packet 2).没有包含全部packet 对于1),我们可以很easily copy整个packet,进行一些自己的操作,然后NdisMIdicateReceivePacket交给上层协议驱动(其实对新手来讲,还有很多细节要抠--例如OOB之类的,我慢慢啃)。 比较变态的是2),我不知道IMD什么时候将packet从底层NIC驱动接收好了(觉得在PtTransferDataComplete中),更不知道IMD是在哪儿Indicate上层Receive了,我还从哪儿下手来截取这个packet 呢? 由此产生的问题是,按MS的DDK的说法,PtReceive要尽可能的快速返回,以免丢包,那么我要在交给交给上层之前对数据包的处理应该在哪儿进行?这岂不是难为人家? MS建议在PtReceiveComplete里进行postproccess,这可是post呀,都交给上层处理完了从上层返回来了,还有什么好处理的,是不是有点不可思议(肯定是我没理解人家的post)? 急盼有过调试经历并且得出了可以合理解释的结果的大虾给以指点!这几天每坐到电脑前,想到这个问题都是一身汗呀! |
|
最新喜欢:ljmmar... |
沙发#
发布于:2003-07-04 08:26
想的挺深刻的。这是有人划的一个表
|
|
|
板凳#
发布于:2003-07-04 16:59
你这厮,上班了吧?QQ上也不回我。:cool:你给的那份资料你感觉理解起来很正确么? 大家有看过这份资料的
\"请\" 做一下评论:按这个passthru的流程截取packet的话是不是可行?我及得好象老斑竹曾经说过这种方案实现起来比较费事,不知道大家意见如何?欢迎做过的高手给出实践经验,我一再强调这一点是因为好多人对这个的理解不是很充分,往往看一看例子就以为自己掌握了,所以众说纷纭,这给我们晚辈带来很多不必要的误解,如果调试过了,说话就会严谨很多,虽然不一定对,但是都是思考过的。 |
|
地板#
发布于:2003-07-04 19:02
你这厮,上班了吧?QQ上也不回我。:cool:你给的那份资料你感觉理解起来很正确么? 大家有看过这份资料的 我怎么没有会QQ,好象你和我很熟啊,我怎么不知道!!! 那份资料还可以,只是很多细节没说。 我感觉截取封报很简单,不过不与APP通讯的!! 高手说麻烦也不一定麻烦,只要你去做,做了才知道难不难!!! 关于收到包处理的4种情况已经说了N会了, 你自己找找。 至于实验的话,我想主要要靠自己吧。 古语有云“尽信书不如无书” 这是一个菜鸟给你的建议 :cool: |
|
|
地下室#
发布于:2003-07-04 20:40
doc怎么看不到
|
|
5楼#
发布于:2003-07-05 10:48
soloz,我下载了呀!
antspower 难道出没于网络之间有两只蚂蚁?恰好都被我碰见了?呵呵 谢谢你的指点 可能着急了点,不想走太多弯路 所以在实现之前总想把这个完全弄明白了 实践当然要靠自己了。 学习ing... |
|
6楼#
发布于:2003-07-06 14:56
easychu,我怎么下载不了?
能否Mail给我,soloz33@163.com 谢谢!!! |
|
7楼#
发布于:2003-07-08 10:00
我也要。tu21cn@sohu.com
|
|
8楼#
发布于:2003-07-08 10:01
我也要。tu21cn@sohu.com :P
|
|
9楼#
发布于:2003-07-09 09:03
大家用flashget下啊
|
|
|