阅读:1385回复:2
NDIS中间层切断(passthru)MPSend,使用IRPRead后,在用户层通过IRPWrite发送该包的问题
NDIS中间层切断(passthru)MPSend,使用IRPRead后,在用户层通过IRPWrite发送该包的问题
IrpQueuePacket( pAdapt, MyPacket, enum_BindedSendPort );//将MPSend发送过来的数据包存入IRP队列中 if ( pAdapt->m_AdaptorRunningMode == adaptor_block )//如果当前要求切断该发送 { Status = NDIS_STATUS_SUCCESS; JRW_FreePktOrg( pPktOrg->Original ); NdisFreePacket(MyPacket); ADAPT_DECR_PENDING_SENDS(pAdapt); return (Status); } //如果不切断就发送 NdisSend(&Status, pAdapt->BindingHandle, MyPacket); 现在的问题是如果切断后,NdisIMCopySendCompletePerPacketInfo (Packet, MyPacket)就没有使用,也就没有取得发送后的Per信息,不是是不是这个原因上层驱动或用户层认为该包没有发送成功,如果真的是这个原因有什么方法可以实现该功能呢? 目前我的想法是通过用户层取得了该包的信息了,或修改或直接通用IRP_MJ_WRITE将数据包直接发往下层驱动,这个想法可以实现吗?希望高人指点一下 |
|
沙发#
发布于:2007-06-22 16:45
参考cipe
|
|
|
板凳#
发布于:2007-06-24 15:46
返回pending 缓存包
|
|