阅读:2021回复:14
------关于passthru的receive问题-------
passthru中的miniport.c中有个MPSend函数可以截获本机发送的包,如果想要截获本机接收的包应该在什么地方呢?我想在miniport上来做。
请指点,多谢! |
|
最新喜欢:flyfox |
沙发#
发布于:2002-06-11 17:37
passthru中的miniport.c中有个MPSend函数可以截获本机发送的包,如果想要截获本机接收的包应该在什么地方呢?我想在miniport上来做。 可在protocol.c中的 PtReceive 及 PtReceivePacket 等。。。。。。 或miniport.c中的MPTransferData。。。 :) |
|
|
板凳#
发布于:2002-06-12 08:55
MPTransferData是不是发送和接收的包都要处理?
|
|
地板#
发布于:2002-06-12 09:27
MPTransferData是不是发送和接收的包都要处理? only during recieving . |
|
|
地下室#
发布于:2002-06-12 09:37
MPTransferData的代码如下:
PADAPT pAdapt = (PADAPT)MiniportAdapterContext; NDIS_STATUS Status; // // Return, if the device is OFF // if (IsIMDeviceStateOn(pAdapt) == FALSE) { return NDIS_STATUS_FAILURE; } NdisTransferData(&Status, pAdapt->BindingHandle, MiniportReceiveContext, ByteOffset, BytesToTransfer, Packet, BytesTransferred); return(Status); 如果我要对receive的packet进行过滤,是不是应该在NdisTransferData之前进行处理? 多谢! |
|
5楼#
发布于:2002-06-12 09:48
MPTransferData的代码如下: 不是这么简单,你最好安心仔细看看ddk吧。 要把receive and send 流程搞清楚。 |
|
|
6楼#
发布于:2002-06-12 10:01
不好意思,主要是任务比较着急。而且在Protocol.c的PTReceive中会遇到Packet总是为NULL的情况,看过以前的几片帖子,可是都没有很好的解决办法,请问到底应该怎样?
再次感谢!!! |
|
7楼#
发布于:2002-06-12 11:47
MPTransferData的代码如下: 应该在NdisTransferData后处理接收! :) |
|
|
8楼#
发布于:2002-06-12 12:02
多谢二位,分已给出。
|
|
9楼#
发布于:2002-06-12 13:16
我在MPTransferData函数的NdisTransferData后面打印Packet内容,在DriverMonitor中观察,发现系统明显变得有些缓慢,鼠标还间隔性的停顿,怎么才能防止出现这样的问题呢?
多谢! |
|
10楼#
发布于:2002-06-12 14:17
而且在这个函数里得到的包结构是错误的,协议标识位是C0A8而不是0800或者是其他的协议,为什么呢?
|
|
11楼#
发布于:2002-06-14 17:53
c0a8是什么??是不是192 168,仔细看一下满像局域网的ip的前两个哦,如果是的话,也许是你的位置找错了
|
|
12楼#
发布于:2002-06-14 20:03
我在MPTransferData函数的NdisTransferData后面打印Packet内容,在DriverMonitor中观察,发现系统明显变得有些缓慢,鼠标还间隔性的停顿,怎么才能防止出现这样的问题呢? 不会吧?装一个passthru就有这么大的影响?passthru不是基本上什么都没有做吗? |
|
13楼#
发布于:2002-06-14 20:19
打印内容是怎么打的呢?如果是达到用户界面上去的话,我觉得如果先达到队列里去,然后在应用层用Timer或另外一个线程到驱动程序里读数据,这样会好一些!!
|
|
14楼#
发布于:2002-06-14 20:20
真巧,我也在研究NDIS特别是Intermediate Driver!
|
|