yellowzzp
驱动小牛
驱动小牛
  • 注册日期2007-07-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1015分
  • 威望131点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
阅读:1313回复:6

NdisSend 网卡句柄 哪里能够取得?

楼主#
更多 发布于:2007-08-10 15:15
我的中间层发包 程序 在 NdisSend 这里 蓝屏
NdisSend(&Status, pUnderAdapt->BindingHandle, ArpPacket);

pUnderAdapt 是 程序在BindAdapt的时候 复制下来的 全局指针 PADAPT

每次接到DeviceIO发包 调用  NdisSend 都是死机 。 是不是我网卡 PADAPT 的问题?
yellowzzp
驱动小牛
驱动小牛
  • 注册日期2007-07-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1015分
  • 威望131点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-13 09:37
顶下啊。。帮忙谁知道说下啊

MPSend()的网 卡句柄 是系统过来的。。我要是自己调用呢。用哪个Handle
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-08-13 10:20
调用NdisSend没有问题.不要直接调用MPSend.检查一下protoclsendcomplete函数,对于上层协议来的包,和自己发的包,是不是做了区分处理.
yellowzzp
驱动小牛
驱动小牛
  • 注册日期2007-07-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1015分
  • 威望131点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-08-13 13:54
问下  
程序在BindAdapt的时候 复制下来的 全局指针 PADAPT

网卡指针 这么获得没问题吧?

我在去看看protoclsendcomplete
jamesking
驱动牛犊
驱动牛犊
  • 注册日期2004-02-04
  • 最后登录2013-03-15
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望53点
  • 贡献值1点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-08-13 14:08
不能用全局指针,因为BindAdapt可能会绑定多块网卡。
调用NdisSend通常是在MPSend或MPSendPackets里,
这两个函数都有一个参数NDIS_HANDLE MiniportAdapterContext;
1、先把MiniportAdapterContext转换成PADAPT
PADAPT pAdapt = (PADAPT)MiniportAdapterContext;
2、再调用NdisSend(&Status, pAdapt->BindingHandle, Packet);
如果不在这两个函数里面调用NdisSend,你需要先在MPSend或MPSendPackets里面将pAdapt保存起来,需要的时候再调用。
yellowzzp
驱动小牛
驱动小牛
  • 注册日期2007-07-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1015分
  • 威望131点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-08-13 15:35
谢谢楼上的啊。。。
我在MPSendPackets  里拷贝下来的也是一样的蓝屏

可能是因为sendcomplete里面 没有对非 系统包进行处理的原因嘛?
我是在 packet != adapt->sendpoolhandle 里面判断是不是系统和自己的包的
对于自己的包 直接free
yellowzzp
驱动小牛
驱动小牛
  • 注册日期2007-07-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1015分
  • 威望131点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-08-13 15:36
我正看 ndispro协议层 驱动呢。
哎。。就为了发个arp包。搞的这么麻烦
听了版主的建议。。我改用。协议层写
那个例子貌似正好实现我这个功能。。
游客

返回顶部