darkread
驱动牛犊
驱动牛犊
  • 注册日期2003-01-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1423回复:2

NdisMIndicateReceivePacket会把Packet指示给谁?

楼主#
更多 发布于:2004-04-03 21:10
我查了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]

最新喜欢:

iwubiwub
darkread
驱动牛犊
驱动牛犊
  • 注册日期2003-01-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-04 10:24


[编辑 -  4/4/04 by  darkread]
darkread
驱动牛犊
驱动牛犊
  • 注册日期2003-01-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-04 20:22
问题已经解决了
pAdapt->miniporthandle是指IMD的
pAdapt->BindingHandle是指nic的
pAdapt并不是一种通用设备指示符
只不过是正对NDIS,的一种结构体,我对Adapt的认识开始是完全错误的,见笑了,呵呵

这个问题基本上是自问自答的,斑竹看了不爽就删了吧,别口我的分数就行了,这两天我问题特别多,扣分了我会郁闷死的

[编辑 -  4/4/04 by  darkread]
游客

返回顶部