阅读:1326回复:3
误区
本人也是自学NDIS driver,有个问题应该很简单,但我硬是没弄明白.用DDK中介绍的规范格式(miniport***和NDIS***)基本可以搭建起一个driver的框架,然后具体添加一些寄存器与firmware的一些交互过程就基本差不多了.但问题是:它需要创建设备,连接符号,添加派遣函数之类的WDM规范函数吗?我觉得这是两条压根不同的线路,无法把两者关系连起来.在这里发生了概念混淆,望大伙指点.因为我发现,有些地方介绍测试driver时,通过用户态写iocontrol(),read(),write()等API函数来实现.
[编辑 - 5/18/05 by zhoudongmei] |
|
沙发#
发布于:2005-05-19 10:28
您的意思是:miniport driver里面不需要出现任何派遣函数,如果应用程序需要与miniport driver交互信息的话,在creatfile()中直接写上\"NDIS\"的符号连接名,然后再写writefile(),readfile(),iocontrol()等等就可以与网卡通信起来? 如果需要应用程序直接和你的驱动通讯,就必须在驱动里调用IoCreateDeviceObject,IoCreateSymbolicLink,添加派遣函数 |
|
板凳#
发布于:2005-05-19 01:05
您的意思是:miniport driver里面不需要出现任何派遣函数,如果应用程序需要与miniport driver交互信息的话,在creatfile()中直接写上\"NDIS\"的符号连接名,然后再写writefile(),readfile(),iocontrol()等等就可以与网卡通信起来?
|
|
地板#
发布于:2005-05-18 09:50
<它需要创建设备,连接符号,添加派遣函数之类的WDM规范函数吗?
这是标准的nt style driver,在wdm出来以前,nt4的驱动就存在了 建立连接符号的目的是上层应用程序可以和驱动通讯。如果你的驱动 不需要和应用程序直接通讯,可以不用建立符号连链接 对于ndis miniport driver,由于是miniport driver,只需要向 ndis注册一个结构就可以了。创建设备,添加派遣函数等工作 都由ndis.sys替你做了。 这两条线路并不矛盾。都要创建设备等,只是一个你不需要直接做 这个工作,而是由系统提供的函数替你做了而已。 不知道是否解释清楚了,呵呵 |
|