mailporn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2008-10-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:2616回复:18

关于passthru中接收包的传输过程

楼主#
更多 发布于:2003-03-10 12:35
在passthru中关于接收包好象有如下函数:

;以下位于protocol.c
PtReceive
PtTransferDataComplete
PtReceiveComplete
PtReceivePacket

;以下位于miniport.c
MPReturnPacket
MPTransferData

这些不知是不是都和接收数据包有关,它们间的关系如何?我把这些函数里的所有包都抓下来了,结果好象还不是一个完整的包

例如:
在RtReceive函数中,如果PacketSize> HeaderBufferSize + LookAheadBufferSize,则剩余的包数据不知从哪里读取

最新喜欢:

honglun520honglu... salengsaleng
海人
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-10 14:02
ddk里面将了,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-10 18:48
在passthru中关于接收包好象有如下函数:

;以下位于protocol.c
PtReceive
PtTransferDataComplete
PtReceiveComplete
PtReceivePacket

;以下位于miniport.c
MPReturnPacket
MPTransferData

这些不知是不是都和接收数据包有关,它们间的关系如何?我把这些函数里的所有包都抓下来了,结果好象还不是一个完整的包

例如:
在RtReceive函数中,如果PacketSize> HeaderBufferSize + LookAheadBufferSize,则剩余的包数据不知从哪里读取
 

PtReceive中先调一调NdisGetReceivedPacket看是否收到了整包,不是的话再调NdisTransferData向下层要剩下的部分,该调用返回Pending,去PtTransferDataComplete中等着结束。全收到了就会进到PtReceiveComplete里,然后你就可以处理了,处理完了就向上递(当然不全收到向上递也可以,那是DDK里Passthru的做法),等进了MPReturnPacket里时,就表示上面收了你的包了,用过的资源在这里可以释放了,当然,如果你收到的是整包,还得调用NdisReturnPacket通知你下面的驱动释放资源,大家的做法都是一样的了。

再说PtReceivePacket,这里收到的都是整包,不要以为你跟踪了半天没看到进到这里面就以为它没用!你看了或者处理了之后也向上递,递完了也会进到MPReturnPacket中,这里你还得调用NdisReturnPacket,做了这个调用,下面Driver的MPReturnPacket就在跑了。

最后一个,MPTransferData是你的上层收到半个包的时候,它也会调用NdisTransferData,这时候就进到你的MPTransferData里了,在这里你要负责把剩下的部分给它。理所当然,如果你总是整包向上递的话,这个入口不支持也没有关系。
写驱动不如买足彩!!
gx_kyw
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-12 11:32
我是一个新手,看DDK中的passthru的时候,总是一头雾水。

不知道大侠们是如何学的??

是自己动手写一下测试吗?

上面经常讲到胡大侠的代码,请问在什么地方可以下载啊??
非常感谢。。


lzhui
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2004-01-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-12 16:36
麻烦SharpShooter老大能否讲得再详细些?(已经很详细了,但我是新手)。
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-12 17:00
麻烦SharpShooter老大能否讲得再详细些?(已经很详细了,但我是新手)。

说实话我也觉得挺详细了,至少收包的路子差不多都齐了,至于发包的也没什么好讲的,就MPSend和PtSendComplete两个入口。
我也不敢再讲了,再讲下去会露马脚的。哥们其实也是菜鸟。
写驱动不如买足彩!!
mailporn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2008-10-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-12 17:40
留个email,我发原先在这里得到的部分代码

不过我稍微改了一点
海人
gz818
驱动小牛
驱动小牛
  • 注册日期2002-02-26
  • 最后登录2008-11-15
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-12 20:30
gz818@yeah.net
gx_kyw
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-13 14:31
TO: mailporn
我的邮箱 gx@acec.com.cn

非常感谢!!!

mailporn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2008-10-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-19 16:33
已发
海人
annenyf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-27
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-23 22:24
现在大体也知道了passthrough的结构,但是还是想看一个具体过滤包的例子。能不能也给我发一份程序?或者告诉我去那里下载相关的资料?

谢谢
tuiger
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-04-27 00:19
mailporn:

  也请给我发一份, tuiger@371.net
  谢谢 :)

[编辑 -  4/27/03 by  tuiger]
shrimp
驱动牛犊
驱动牛犊
  • 注册日期2003-04-30
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-04-30 09:17
我也要
shrimp4624@yahoo.com.cn
不要拒绝我... 哈!哈! 给分!
maoyuer201314
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2003-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-05-01 10:24
我也要
fam555@163.com


帮帮我,谢谢!!!
wangsj47
驱动牛犊
驱动牛犊
  • 注册日期2003-04-11
  • 最后登录2012-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-05-07 11:07
我也要,我是个新手,很需要这方面的资料,请给我一份,非常感谢!

wangsj47@sina.com.cn

~~~~~~~~~~~~~~~~~~~~~~~~~~~ 初来乍道,一头雾水~~~~ E-Mail:wangsj47@sina.com
zhanghuan
驱动牛犊
驱动牛犊
  • 注册日期2003-05-02
  • 最后登录2004-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-05-07 12:45
近来在做nat/pat,对于ndis这个看了半天,搞不懂,能否参考一下你的代码,谢谢
邮箱:netmeteor@163.com
baoyibao99
禁止发言
禁止发言
  • 注册日期2003-05-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分894分
  • 威望8415点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-05-08 23:05
用户被禁言,该主题自动屏蔽!
ivan58
驱动牛犊
驱动牛犊
  • 注册日期2003-05-04
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-05-23 20:16
TO: mailporn
我的邮箱 ghxie@ah165.net
非常感谢!!!
sharkmouse
禁止发言
禁止发言
  • 注册日期2003-05-05
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1355分
  • 威望7163点
  • 贡献值1点
  • 好评度24点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-06-23 18:03
用户被禁言,该主题自动屏蔽!
游客

返回顶部