阅读:1423回复:2
NdisMIndicateReceivePacket会把Packet指示给谁?
我查了ddk
When a miniport driver calls NdisMIndicateReceivePacket, NDIS passes each pointer at ReceivePackets separately, in the miniport-determined order, to the ProtocolReceivePacket function(s) of bound protocol(s) that export this function. To other bound protocols, NDIS passes each packet pointer to the ProtocolReceive function(s). 好像意思是说,miniport会把指示传给绑定于它的那个Protocol驱动 在Hugy的代码中是这样的这个是在TransferDataComplete的最后 NdisMIndicateReceivePacket(pAdapt->MiniportHandle,&Packet,1);pAdapt来自PtReceive的pAdapt 在pAdapt = pAdapt->pPrimaryAdapt;那么我想这里的miniport是imd绑定的那个,如果在这里调用NdisMIndicateReceivePacket(),那么不是又传回来了吗?? 我想问的就是 1、PtReceive中有一个传人的参数叫IN NDIS_HANDLE ProtocolBindingContext,它是交换上下文的,具体指的什么 2、pAdapt->pPrimaryAdapt指的是什么?是Imd的Protocol绑定的那个miniport吗? 3、如果2、的答案是的话调用NdisMIndicateReceivePacket()的时候我我看来ndis.h中的宏定义#define NdisMIndicateReceivePacket(_H, _P, _N) { (*((PNDIS_MINIPORT_BLOCK)(_H))->PacketIndicateHandler)( _H, _P, _N); } 天哪,这里的pAdapt应该是表示的是protocol向下绑定的那个miniport那么根据ddk,miniport应该指示绑定在它身上的那个protocol,也就是IMD的,这不就成了一个循环了吗? 4、在没又IMD的时候,是不是又也是又一个Protocol绑定在NIC的miniport上的呢?那么在IMD的protocol绑定在NIC的Miniport上之后 ,原来的那个protocol呢?是悬空了,还是绑定在imd的miniport之上了 5、谁会调用PtBindAdapter?是Ndis吗? 还有,是不是我对IMD的认识完全是错误的 [编辑 - 4/3/04 by darkread] |
|
最新喜欢:iwub |
沙发#
发布于:2004-04-04 10:24
[编辑 - 4/4/04 by darkread] |
|
板凳#
发布于:2004-04-04 20:22
问题已经解决了
pAdapt->miniporthandle是指IMD的 pAdapt->BindingHandle是指nic的 pAdapt并不是一种通用设备指示符 只不过是正对NDIS,的一种结构体,我对Adapt的认识开始是完全错误的,见笑了,呵呵 这个问题基本上是自问自答的,斑竹看了不爽就删了吧,别口我的分数就行了,这两天我问题特别多,扣分了我会郁闷死的 [编辑 - 4/4/04 by darkread] |
|