yyqxt
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2095回复:12

passthru在RTL8039(A)上得不到数据包,而在D-Link 530tx...

楼主#
更多 发布于:2001-12-29 18:49
我将passthru修改了一下用来截获数据包,在D-Link DFE530TX网卡
上可以实现,可是在RTL8039(A)上和3COM网卡上的不到数据包,不知道什么原因,以前论坛上好像见过同类的问题,但没有明确回复...

希望可以可以得到高手指点,最好有详细的步骤  Thanks

最新喜欢:

tomoretomore
跟着DDK狂奔
jukebox
驱动牛犊
驱动牛犊
  • 注册日期2001-08-25
  • 最后登录2002-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-29 20:30
D-Link DFE530TX可以走recvpacket,3com走的是recv
yyqxt
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-30 12:39
现在是D-Link DFE530TX可以走
3com和RTL8139 recv和recvpacket两个都不走,DriverEntry好像都注册不完整,中间的DBG信息都打不出来
跟着DDK狂奔
jukebox
驱动牛犊
驱动牛犊
  • 注册日期2001-08-25
  • 最后登录2002-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-30 13:01
现在是D-Link DFE530TX可以走
3com和RTL8139 recv和recvpacket两个都不走,DriverEntry好像都注册不完整,中间的DBG信息都打不出来


是啊,D-Link DFE530TX可以走recvpacket和recv,3com只能走recv
看看你写在哪儿了.........
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-30 20:48
我的网卡是RTL8039,我的passthru从来没有调用过prorecievepacket。
yyqxt
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-12-31 10:42
现在的问题是,我的程序在RTL8139(A)下两个都不走,但是发送数据的时候走MPsend,不解
跟着DDK狂奔
jukebox
驱动牛犊
驱动牛犊
  • 注册日期2001-08-25
  • 最后登录2002-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-12-31 11:25
现在的问题是,我的程序在RTL8139(A)下两个都不走,但是发送数据的时候走MPsend,不解


recv和recvpacket都不走???  不可能吧

加了passthru后,网卡还能收到包么?
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-12-31 11:31
引用:
--------------------------------------------------------------------------------
现在的问题是,我的程序在RTL8139(A)下两个都不走,但是发送数据的时候走MPsend,不解
--------------------------------------------------------------------------------

你现在还能收到数据包吗?比如还能上网吗?若还能上网,则你的“两边都不走”肯定不对!
yyqxt
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-12-31 13:49
我的计算机现在还可以上网,我又调试了一下
发现我的数据走的是PtReceive,但是到
Packet = NdisGetReceivedPacket(pAdapt->BindingHandle, MacReceiveContext);却是得到一个空的数据包

代码
Packet = NdisGetReceivedPacket(pAdapt->BindingHandle, MacReceiveContext);
if(Packet == NULL)
{    DBGPRINT(\"<==使用NdisGetReceivedPacket()得到一个空指针\\n\");}
if(Packet != NULL)
{
//
// Get a packet off the pool and indicate that up
//
             DBGPRINT(\"<==使用NdisGetReceivedPacket()得到一个非空指针\\n\");

NdisDprAllocatePacket(&Status,
 &MyPacket,
 pAdapt->RecvPacketPoolHandle);

==============================
输出的DGB信息是
使用NdisGetReceivedPacket()得到一个空指针
跟着DDK狂奔
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-12-31 14:26
整个情况是正常的,我的也是这样。
yyqxt
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-12-31 15:39
mister 找到问题的原因和解决的方法了没有

qq:15038579   有时间可以讨论讨论
跟着DDK狂奔
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2001-12-31 15:52
NdisGetReceivePacket的作用是来取得下层发到本层的包,如:下层调用NdisMIndicatePackets,那么它便会将包发送到本层,若在它的某个包的NDIS_PACKET_SET_STATUS为NDIS_OOB_RESOURCE,这样NDIS便回调用本层的ptReceive,在这个例程中此时若你调用NdisGetReceivePacket时,便不会返回NULL。
而我们所遇到的情况恰恰相反,下层调用的是NdisM..IndicateRecieve,所有本层调用NdisGetReceivePacket,便回返回NULL。
jukebox
驱动牛犊
驱动牛犊
  • 注册日期2001-08-25
  • 最后登录2002-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2001-12-31 16:13
为什么不多看看以前的帖子....................

http://www.driverdevelop.com/forum/viewthread.php?fid=10&tid=5488

游客

返回顶部