pengwang_2001
驱动牛犊
驱动牛犊
  • 注册日期2004-02-19
  • 最后登录2005-10-25
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1338回复:3

菜鸟求救:有关IRP

楼主#
更多 发布于:2005-06-04 10:08
请问各位大哥:是不是WDM提供的IRP,如IRP_MJ_PNP等,会自动加入stack,进行排队等待,不用调用IoStartPacket和StartIo例程。只有自己定义的IRP才使用IoCallDriver等
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-06-04 10:13
请问各位大哥:是不是WDM提供的IRP,如IRP_MJ_PNP等,会自动加入stack,进行排队等待,不用调用IoStartPacket和StartIo例程。只有自己定义的IRP才使用IoCallDriver等

stack跟驱动的层有关,跟排队无关,I/O Manager提供一个IRP队列,但可以建立自己的IRP队列及管理策略
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
pengwang_2001
驱动牛犊
驱动牛犊
  • 注册日期2004-02-19
  • 最后登录2005-10-25
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-06-04 13:41
bmyyyud,早就听说过你的大名了,上个问题俺明白了。小弟再请教一个问题,传输方式DO_BUFFERED_IO和DO_DIRECT_IO,哪个传输速度更快,哪种传输方式更好?谢谢
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-06-04 16:46
bmyyyud,早就听说过你的大名了,上个问题俺明白了。小弟再请教一个问题,传输方式DO_BUFFERED_IO和DO_DIRECT_IO,哪个传输速度更快,哪种传输方式更好?谢谢

哎,不知道你是从哪里听说的。光这个论坛中的牛人就多了去了,偶从来只有看得份 :P
传输方式DO_DIRECT_IO快,因为DO_BUFFERED_IO,I/O Manager需要在系统空间分配Buffer,然后在系统空间与用户空间,拷来拷去,但有利就有弊,DO_BUFFERED_IO自我感觉是其中最安全的。除了这两个还有个NEITHER方式,就是什么都不做,直接传入用户区地址,FSD中常用。至于哪种传输方式更好,看你的需求了,如果数据量不大,没有时间要求,还是用DO_BUFFERED_IO吧
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部