阅读:2095回复:12
passthru在RTL8039(A)上得不到数据包,而在D-Link 530tx...
我将passthru修改了一下用来截获数据包,在D-Link DFE530TX网卡
上可以实现,可是在RTL8039(A)上和3COM网卡上的不到数据包,不知道什么原因,以前论坛上好像见过同类的问题,但没有明确回复... 希望可以可以得到高手指点,最好有详细的步骤 Thanks |
|
最新喜欢:![]()
|
沙发#
发布于:2001-12-29 20:30
D-Link DFE530TX可以走recvpacket,3com走的是recv
|
|
板凳#
发布于:2001-12-30 12:39
现在是D-Link DFE530TX可以走
3com和RTL8139 recv和recvpacket两个都不走,DriverEntry好像都注册不完整,中间的DBG信息都打不出来 |
|
|
地板#
发布于:2001-12-30 13:01
现在是D-Link DFE530TX可以走 是啊,D-Link DFE530TX可以走recvpacket和recv,3com只能走recv 看看你写在哪儿了......... |
|
地下室#
发布于:2001-12-30 20:48
我的网卡是RTL8039,我的passthru从来没有调用过prorecievepacket。
|
|
5楼#
发布于:2001-12-31 10:42
现在的问题是,我的程序在RTL8139(A)下两个都不走,但是发送数据的时候走MPsend,不解
|
|
|
6楼#
发布于:2001-12-31 11:25
现在的问题是,我的程序在RTL8139(A)下两个都不走,但是发送数据的时候走MPsend,不解 recv和recvpacket都不走??? 不可能吧 加了passthru后,网卡还能收到包么? |
|
7楼#
发布于:2001-12-31 11:31
引用:
-------------------------------------------------------------------------------- 现在的问题是,我的程序在RTL8139(A)下两个都不走,但是发送数据的时候走MPsend,不解 -------------------------------------------------------------------------------- 你现在还能收到数据包吗?比如还能上网吗?若还能上网,则你的“两边都不走”肯定不对! |
|
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()得到一个空指针 |
|
|
9楼#
发布于:2001-12-31 14:26
整个情况是正常的,我的也是这样。
|
|
10楼#
发布于:2001-12-31 15:39
mister 找到问题的原因和解决的方法了没有
qq:15038579 有时间可以讨论讨论 |
|
|
11楼#
发布于:2001-12-31 15:52
NdisGetReceivePacket的作用是来取得下层发到本层的包,如:下层调用NdisMIndicatePackets,那么它便会将包发送到本层,若在它的某个包的NDIS_PACKET_SET_STATUS为NDIS_OOB_RESOURCE,这样NDIS便回调用本层的ptReceive,在这个例程中此时若你调用NdisGetReceivePacket时,便不会返回NULL。
而我们所遇到的情况恰恰相反,下层调用的是NdisM..IndicateRecieve,所有本层调用NdisGetReceivePacket,便回返回NULL。 |
|
12楼#
发布于:2001-12-31 16:13
为什么不多看看以前的帖子....................
http://www.driverdevelop.com/forum/viewthread.php?fid=10&tid=5488 |
|