zhoudongmei
驱动牛犊
驱动牛犊
  • 注册日期2005-04-16
  • 最后登录2005-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1324回复:3

误区

楼主#
更多 发布于:2005-05-18 00:14
本人也是自学NDIS driver,有个问题应该很简单,但我硬是没弄明白.用DDK中介绍的规范格式(miniport***和NDIS***)基本可以搭建起一个driver的框架,然后具体添加一些寄存器与firmware的一些交互过程就基本差不多了.但问题是:它需要创建设备,连接符号,添加派遣函数之类的WDM规范函数吗?我觉得这是两条压根不同的线路,无法把两者关系连起来.在这里发生了概念混淆,望大伙指点.因为我发现,有些地方介绍测试driver时,通过用户态写iocontrol(),read(),write()等API函数来实现.

[编辑 -  5/18/05 by  zhoudongmei]
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-05-18 09:50
<它需要创建设备,连接符号,添加派遣函数之类的WDM规范函数吗?

这是标准的nt style driver,在wdm出来以前,nt4的驱动就存在了

建立连接符号的目的是上层应用程序可以和驱动通讯。如果你的驱动
不需要和应用程序直接通讯,可以不用建立符号连链接

对于ndis miniport driver,由于是miniport driver,只需要向
ndis注册一个结构就可以了。创建设备,添加派遣函数等工作
都由ndis.sys替你做了。

这两条线路并不矛盾。都要创建设备等,只是一个你不需要直接做
这个工作,而是由系统提供的函数替你做了而已。

不知道是否解释清楚了,呵呵

zhoudongmei
驱动牛犊
驱动牛犊
  • 注册日期2005-04-16
  • 最后登录2005-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-19 01:05
您的意思是:miniport driver里面不需要出现任何派遣函数,如果应用程序需要与miniport driver交互信息的话,在creatfile()中直接写上\"NDIS\"的符号连接名,然后再写writefile(),readfile(),iocontrol()等等就可以与网卡通信起来?


zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-05-19 10:28
您的意思是:miniport driver里面不需要出现任何派遣函数,如果应用程序需要与miniport driver交互信息的话,在creatfile()中直接写上\"NDIS\"的符号连接名,然后再写writefile(),readfile(),iocontrol()等等就可以与网卡通信起来?


 

如果需要应用程序直接和你的驱动通讯,就必须在驱动里调用IoCreateDeviceObject,IoCreateSymbolicLink,添加派遣函数
游客

返回顶部