ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
阅读:1614回复:7

MpSend中怎么通知上层收一个数据包?我快哭了。。。

楼主#
更多 发布于:2003-04-24 23:00
兰屏无数次以后,我哭了。。。
MpSend中遇到特定的包(如ARP)包,不再发出,而是构造一个相应的ARP Reply递交给上层。
我按照下面的方法做:

1。NdisSend注释掉,然后返回给函数一个成功值,让系统以为包已经发出,从而释放掉内存。
就是把MyPacket的状态设置为NDIS_STATUS_SUCCESS,然后释放掉,这样做可以么?
2。用NdisMIndicateReceive通知上层接收自己组建的数据包。此时
这个NdisMIndicateReceive的第一个参数应该怎么写?
3。调用NdisMIndicateReceive如果返回不是Pending,,可以直接释放掉自己组建包用的内存。如果返回的是Pending,是不是要在ReturnPacket中释放内存呢?如何释放呢?

我真是一点办法都没有了,好迷茫。。。:(:(:(:(:(:(:(:(
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-25 09:30
1首先,你告诉协议层让他释放的packet是有协议层分配的,那个mypacket是你分配的,怎么可以让协议层去释放??

2第一个参数就用adapter里面的miniporthandle

3用ndis的函数释放 ,ndisfreeXXXXXXX
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-25 10:23
第一个问题现在已经解决了。

我想第二个问题也没有多大挑战性。

第三个,我的意思是说既然我调用了NdisMIndicateReceive,那么我的数据报会有各个状态,不是pending的时候怎么办?是pending的时候怎么办?ndisfree***是肯定要用的,不过应该怎么用呢?请大侠明示。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-25 12:58
NdisMIndicateReceive的话会有receivecomplete,在那里面释放内存。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-25 17:38
这些都是知道的,能不能详细些说呢?最好结合一点代码。

[编辑 -  4/25/03 by  ruberman]
ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-04-25 18:00
我想既然自己组建了一个PACKET,就应该用IndicateReceivePacket吧。然后释放应该在ReturnPacket中释放。不知道理解对不对。
但是我不知道该怎么操作。哪位大侠能详细的说明白?
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-04-26 08:38
to ruberman
我想你是对的 :)
不停学习
ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-04-27 13:54
具体应该怎么做呢?现在我的笔记本已经被驱动折磨的不行了,郁闷。
mikeluo,我给你的邮箱发了邮件,收到否?
游客

返回顶部