阅读:1923回复:4
请问怎么在MPTransferData和PtTransferDataComplete里替换成自己的包?
大家都知道,在passthru里收包过滤的地方有四个:PtReceive、PtReceivePacket、MPTransferData、PtTransferDataComplete
我想在收包的时候实现用另外一个自己组的包替换掉原来的包。PtReceive、PtReceivePacket例子里新的NDIS_PACKET都构造好了,自己填buffer就行了,然后再处理一下释放函数PtSendComplete和MPReturnPacket就行了。比较简单。 但是MPTransferData、PtTransferDataComplete应该如何替换包呢?需不需要向上面一样处理什么释放函数? |
|
沙发#
发布于:2013-03-03 13:01
好吧。。确实我从调试信息里从没见过MPTransferData、PtTransferDataComplete的调用,不过还是很想知道应该怎么修改buffer,怎么释放MyPacket
另外LS说的,只有MPTransferData有状态返回值,可以设置成失败,但是PtTransferDataComplete返回值是void,又该如何处理呢? 现在我是MPTransferData返回NDIS_STATUS_FAILURE,PtTransferDataComplete就直接return了,连最后的NdisMTransferDataComplete都不要了,这样做可以吗? NDIS_STATUS MPTransferData( OUT PNDIS_PACKET Packet, OUT PUINT BytesTransferred, IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_HANDLE MiniportReceiveContext, IN UINT ByteOffset, IN UINT BytesToTransfer ) VOID PtTransferDataComplete( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_PACKET Packet, IN NDIS_STATUS Status, IN UINT BytesTransferred ) |
|