w_bingjian
驱动牛犊
驱动牛犊
  • 注册日期2004-05-11
  • 最后登录2005-04-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2025回复:3

readfile,writefile和 DeviceIoControl疑问?

楼主#
更多 发布于:2004-12-10 11:07
readfile,writefile和 DeviceIoControl都可以向驱动程序发出请求读写请求,二者有什么不同,那种方法的速度更快。

最新喜欢:

tsingkongtsingk...
fgf1014
驱动牛犊
驱动牛犊
  • 注册日期2003-02-22
  • 最后登录2005-10-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-14 20:28
应该是DeviceIoControl快吧!
junki
驱动牛犊
驱动牛犊
  • 注册日期2004-09-02
  • 最后登录2007-11-30
  • 粉丝0
  • 关注0
  • 积分124分
  • 威望13点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-18 08:53
操作系统规定应用层和内核通信只能通过固定的接口:
Writefile,readfile,deviceiocontrol等

但是可以换个方式实现,你可以在内核实现你的函数,不过不是像dll那样的通过函数名向外显露,可以用ioctl码,也就是说你在内核定义不同功能的函数,然后在应用层通过deviceiocontrol来调用,然后你可以写个dll来封装这些deviceiocontrol,最后你的应用程序就可以调用dll中的函数来访问内核了,效果是一样的。

如果光写或光读就用write,read.
如果需要写了还需要返回,就用iocontrol.

Writefile,readfile:在DriverEntry中由Flags指定是直接访问还是buffer缓存方式。

deviceiocontrol:由控制码指定,控制码是你自己定义的,可以多种。

coolwuya
驱动牛犊
驱动牛犊
  • 注册日期2004-06-29
  • 最后登录2007-08-24
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望21点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-18 09:10
我倒并不完全是这么理解的。
并不是你想用哪个就用哪个,比如,基于mass storge协议的USB海量存储器的操作你还必须要用deviceiocontrol,因为用wfile/rfile已没什么作用(句柄已经被OS获得,访问冲突)。
USB开发交流
游客

返回顶部