aqiuzaizai
驱动牛犊
驱动牛犊
  • 注册日期2007-02-02
  • 最后登录2008-04-02
  • 粉丝0
  • 关注0
  • 积分180分
  • 威望69点
  • 贡献值0点
  • 好评度68点
  • 原创分0分
  • 专家分0分
阅读:1557回复:1

协议驱动 与 Miniport驱动 绑定与调用如何实现的?(非函数说明)

楼主#
更多 发布于:2007-11-15 11:06
背景:
    实现一个协议驱动对虚拟NIC设备的访问。(不使用中间层驱动)

实现:

    结合DriverStudio生成的协议驱动和Miniport驱动框架文件,分析如下:
    在协议驱动中首先向系统注册设备名及路径,以供上层软件调用;然后IoCreateDevice创建设备对象。接着注册必要的协议驱动的函数入口,其中使用NdisOpenAdapter函数实现了对下层Miniprt驱动的绑定时候。然后通过NdisQueryAdapterInstanceName获得Adapter相关信息,再通过NdisRequest向下层的Miniport驱动发出操作请求。
    在标准Miniport驱动中,就没有注册设备名及路径着些操作了,知识使用了NdisMInitializeWrapper通知NDIS该驱动的注册。 除了注册必要的Miniport驱动的函数入口,相对来说就是多了MiniportInitialize函数。通过NdisOpenConfiguration和NdisReadConfiguration获取注册表中的信息。
    问题就在这个地方:绑定的实现函数NdisOpenAdapter的参数都是由NDIS自己传入的,那么现在这2个驱动之间是怎么联系起来的?就是说如果要绑定一个协议驱动和一个Miniport驱动,我们需要在这2个驱动中做些什么来联系两者?最好能用例子形象说明,如果能给个样例分析,将更感激不尽。
    请高手不吝赐教,偶的邮箱aqiuzaizai@126.com。谢谢。
竹密何妨流水过 山高岂碍野云飞
aqiuzaizai
驱动牛犊
驱动牛犊
  • 注册日期2007-02-02
  • 最后登录2008-04-02
  • 粉丝0
  • 关注0
  • 积分180分
  • 威望69点
  • 贡献值0点
  • 好评度68点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-11-19 08:56
弄了几天终于搞清楚了,协议驱动靠介质类型NdisMedium802_3等的选择选择,把对应的类型的介质全部绑定. 找到个很有用的例子说明,有兴趣的可以到下面连接看看。

http://hi.baidu.com/flyownway/blog/item/ddf50c82d78762bc6d81196a.html
竹密何妨流水过 山高岂碍野云飞
游客

返回顶部