blzhang
驱动牛犊
驱动牛犊
  • 注册日期2001-09-12
  • 最后登录2002-03-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2573回复:7

网卡驱动程序可以调用Iocreatedevice吗?

楼主#
更多 发布于:2001-09-26 16:10
我想在应用层直接createfile然后用deviceiocontrol和驱动通信,
不知可行否?
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-09-26 16:14
好象不可以!
调用IOCREATEDEVICE()。至少,我没见过这样的用法
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2001-09-26 18:04
我个人认为,任何kernel-driver,如果不是特别特别
特殊,都是可以iocreatedevice的。至于是否会因此
而带来一些后遗症,例如不能正确卸载之类的,那就
很难说了。
不再回忆从前,我已经生活在幸福当中。
stills
驱动牛犊
驱动牛犊
  • 注册日期2001-09-28
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-10-11 19:26
用IoCreateDevice肯定不行。

不过在NDIS5.0版本以上可以用NdisMRegisterDevice()
创建一个Device. 而且可以用CreateFile方式控制。没问题,
不论是速度还是什么。我都做好了。

目前在Win98第二版和win2k, Window me都支持NDIS5.0这个函数

不过在NT4.0上不行,目前我正要做一个用在NT4.0上的真不爽啊!

我看别人一般不这样用,(猜的)一般好像是做两个sys,一个是网络的,一个是有控制Device的,这两个驱动之间通讯控制的。感觉这
样规范一些!





我在世界的中心呼唤你
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2001-10-12 18:02
你试过了?不行?

“ 用IoCreateDevice肯定不行 ”???


这样用是否规范不说,问题是能不能这样用。
不再回忆从前,我已经生活在幸福当中。
stills
驱动牛犊
驱动牛犊
  • 注册日期2001-09-28
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-10-12 19:23
算我说的太肯定,我没有试过。
我是根据 Win2000DDK的Document 说的

NDIS drivers should never call IoCreateDevice or IoCreateSymbolicLink. Instead, if an NDIS driver must create a device object, it should call NdisMRegisterDevice.


还是好好考虑我的NT下的驱动如何解决这个问题吧!

那位老兄知道有没有可以将NT4.0的NDIS升级到5.0的软件包
那样也许就不用另写了。 赶着急用!
我在世界的中心呼唤你
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2001-10-13 09:20
俺做过试验,ndisdriver调用iocreatedevice毫无问题,
而且devioctl毫无问题。存在一个比较费劲的问题就是
卸载的消息无法得到,因此必须用个别的方法绕过去。

ddk说的是不应该,should not,是说这样不规范,但是
还是能用的。至于在什么地方调用,可以在driverentry,
也可以在ndisrequest的某个地方调用,这都是自己任意
决定的。

不再回忆从前,我已经生活在幸福当中。
LikeDDK
驱动牛犊
驱动牛犊
  • 注册日期2001-09-30
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-10-13 18:29
我看到DDK里面有个packet的例子,里面就有用IoCreateDevice。
游客

返回顶部