pphust
驱动牛犊
驱动牛犊
  • 注册日期2005-01-06
  • 最后登录2006-09-13
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1337回复:4

IRP结构中Flags域,用来做什么用,如果是IRP_MJ_READ,是不是就是说数据用的是之间IO传输!

楼主#
更多 发布于:2005-01-22 11:17
请教一下:
 IRP结构中Flags域,用来做什么用?如果是IRP_MJ_READ,是不是就是说读取数据用的是直接IO传输!
    
新手上路
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-01-22 11:26
请教一下:
 IRP结构中Flags域,用来做什么用?如果是IRP_MJ_READ,是不是就是说读取数据用的是直接IO传输!
    


这个位要根据你具体硬件的要求进行设置的。(一般在AddDevice例程中完成)

可以设置成为你想要的设备数据传输方式。

可以是DIRECT IO 或者是 BUFFER IO  还可以可编程IO三种传输方式。

一般都用前两种!
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-01-22 11:30
请教一下:
 IRP结构中Flags域,用来做什么用?如果是IRP_MJ_READ,是不是就是说读取数据用的是直接IO传输!
    


不好意思。。。。。。。看错题目了

呵呵

刚说的是DEVICEOBLECT 中的Flags


IRP中的这个位是ULONG类型,包含一些对驱动程序只读的标志。但这些标志与WDM驱动程序无关。如果但是写驱动,你不用考虑它的!
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
pphust
驱动牛犊
驱动牛犊
  • 注册日期2005-01-06
  • 最后登录2006-09-13
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-01-22 12:32
非常感谢您的回答,想继续问一下。
如果你说的deviceobject中的flags可以标记用那个传输方式。
1。直接I/O 2。内存映射 3。DMA
这3种的区别,是什么。
如果3种都选择,驱动怎么来判断什么时候用那种传输方式。?
既然实际传输的时候只能用一种方式,为什么要3种都选择呢?难道3种能同时工作??
新手上路
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-01-22 16:36
非常感谢您的回答,想继续问一下。
如果你说的deviceobject中的flags可以标记用那个传输方式。
1。直接I/O 2。内存映射 3。DMA
这3种的区别,是什么。
如果3种都选择,驱动怎么来判断什么时候用那种传输方式。?
既然实际传输的时候只能用一种方式,为什么要3种都选择呢?难道3种能同时工作??


是有三种方式供你选择。
但你只能选其中 的一种!!

还有。。。

你说的那三种方式不对的。。
我二楼不是跟你说清楚了,

这三种传输方式是:DIRECT IO 或者是 BUFFER IO 还可以可编程IO三种传输方式。

建议自己找本书看看。。。

里面都有介绍的。。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
游客

返回顶部