shyandsy
驱动牛犊
驱动牛犊
  • 注册日期2007-12-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分447分
  • 威望183点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
阅读:1200回复:4

怎样才能判断出IRP是对卷的操作呢?

楼主#
更多 发布于:2008-04-19 13:01
       好像在DispatchRead中需要做两个前提判断,先判断是不是我们的设备对象,还要判断
是不是对卷的操作,如果不是就PASSTHROUGH
      判断是不是我们的设备对象用:
             ASSERT(!IS_MY_CONTROL_DEVICE_OBJECT( DeviceObject ));
                 ASSERT(IS_MY_DEVICE_OBJECT( DeviceObject ));
 
      可是怎么判断是不是对卷的操作呢
选择喜欢做的事,就要努力去做!
tonyfirst1
驱动牛犊
驱动牛犊
  • 注册日期2008-02-26
  • 最后登录2010-08-06
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望138点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-04-20 11:10
要看你的驱动是在什么层次上干活吧。
shyandsy
驱动牛犊
驱动牛犊
  • 注册日期2007-12-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分447分
  • 威望183点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-04-20 22:08
   先谢谢你了  真的  这个问题您是第一个回答的
  我是用SFILTER框架做文件过滤驱动的,初学遇到很多问题
  顺便再问下有没有DbgPrint中输出数据类型描述符的对照表,
比如说ULONG类型用%d。。。。
选择喜欢做的事,就要努力去做!
yellowzzp
驱动小牛
驱动小牛
  • 注册日期2007-07-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1015分
  • 威望131点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-04-21 16:51
DbgPrint
数字用%d
char     %s
wchar  %ws
ANSI_STRING   %Z
UNICODE_STRING %wZ
shyandsy
驱动牛犊
驱动牛犊
  • 注册日期2007-12-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分447分
  • 威望183点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-04-22 18:31
    谢谢您拉
   可是我用DbgPrint输出ULONG类型时编译出错
DbgPrint(("Length:%d, Flags:%d\n",Length,Flag));
导致如下错误:
      1>1>sfilter.c(6561) : error C2220: warning treated as error - no object file generated
        1>1>sfilter.c(6561) : error C4047: 'function' : 'PCH' differs in levels of indirection from 'ULONG'

    只要把这条语句注释掉就一切正常
这是怎么搞得阿  在线等
选择喜欢做的事,就要努力去做!
游客

返回顶部