tiannomad
驱动牛犊
驱动牛犊
  • 注册日期2006-10-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分330分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:1503回复:2

请教pci9054Readfile和Writefile的问题

楼主#
更多 发布于:2007-04-18 22:57
  看武安河的书上看到,在直接硬件访问(读写)和DMA方式下读写均采用Readfile和Writefile,同时在DMA方式下通过SERIALREAD和SERIALWRITE,但是还是保留有READ和WRITE两个IRP,请问两种方式下怎么区分调用的是read还是serialread哪?
zhangwei_351286
驱动牛犊
驱动牛犊
  • 注册日期2006-10-08
  • 最后登录2008-01-22
  • 粉丝0
  • 关注0
  • 积分140分
  • 威望15点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-04-19 20:11
如果是从DDK编写驱动过来的会很明白这个问题。
readfile经过IO管理器的打包成IRP_MJ_READ后由系统直接派遣到其对应的派遣例程
在DriverStudio中它就是 Read(),如果你涉及与硬件的交互,应当将这个IRP排队
系统有一个FIFO队列。会将其按进入的顺序排队,由startIo去取来进行串行化处理,这时候再调用
自己写的涉及到的对硬件操作所编写的函数serialread。反之,立刻返回。
write和读的原理一样。
tiannomad
驱动牛犊
驱动牛犊
  • 注册日期2006-10-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分330分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-28 13:03
多谢,是我自己看书不够仔细,在书上IO管理器上有不同的映射和队列的。
游客

返回顶部