fanzi
驱动小牛
驱动小牛
  • 注册日期2004-12-09
  • 最后登录2013-12-19
  • 粉丝1
  • 关注0
  • 积分1004分
  • 威望754点
  • 贡献值0点
  • 好评度93点
  • 原创分0分
  • 专家分0分
阅读:4807回复:12

讨论一下磁盘驱动的LowerFilters

楼主#
更多 发布于:2009-01-12 15:06
我做了一个最简单的过滤驱动,里面啥也没干,就是forward一下IRP。
如果这个Filter作为UpperFilters没问题,作为LowerFilters拦截个U盘也没问题,但是重启就死机。
大家遇到过这样的问题吗???
其实我在AddDevice有考虑,不过滤硬盘的。
NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT pdo)
{                            // AddDevice
    PAGED_CODE();
    NTSTATUS status;

    PDEVICE_OBJECT fido;

    if (!USB_Disk(pdo))
    {
        return STATUS_UNSUCCESSFUL;
    }
       。。。略

}

张帆的内核学习论坛 http://bbs.kerneldev.com
AlexSho
驱动牛犊
驱动牛犊
  • 注册日期2008-01-10
  • 最后登录2017-12-01
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望164点
  • 贡献值0点
  • 好评度45点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2009-01-14 11:26
#     if (!USB_Disk(pdo))
#     {
#         return STATUS_SUCCESS;
#     }
fanzi
驱动小牛
驱动小牛
  • 注册日期2004-12-09
  • 最后登录2013-12-19
  • 粉丝1
  • 关注0
  • 积分1004分
  • 威望754点
  • 贡献值0点
  • 好评度93点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-01-14 20:37
注释掉了也死机
张帆的内核学习论坛 http://bbs.kerneldev.com
AlexSho
驱动牛犊
驱动牛犊
  • 注册日期2008-01-10
  • 最后登录2017-12-01
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望164点
  • 贡献值0点
  • 好评度45点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2009-01-15 13:52
不是让你注释掉,是让你返回STATUS_SUCCESS,那个#号是复制的时候论坛自己加上去的。
fanzi
驱动小牛
驱动小牛
  • 注册日期2004-12-09
  • 最后登录2013-12-19
  • 粉丝1
  • 关注0
  • 积分1004分
  • 威望754点
  • 贡献值0点
  • 好评度93点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-01-22 22:31
我即使不判断是否是usb disk,即所有设备都返回STATUS_SUCCESS。重启后依然死机
张帆的内核学习论坛 http://bbs.kerneldev.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-02-04 11:29
使用调试版调试下,应该很容易找到问题
以前我测试磁盘驱动的LowerFilter和UpperFilter都没有碰到你这样的问题
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
boildoctor
驱动牛犊
驱动牛犊
  • 注册日期2009-03-11
  • 最后登录2009-04-04
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望271点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-03-27 09:48
问题是否在这里?不一定,可能是你处理IRP_MJ_SICI 时候,里的写操作,或者读操作的时候 拦截了没把请求向下传递。结果硬盘读不了。重启蓝屏是因为重启以后 本地磁盘也加载驱动了。所以本地磁盘中的windows系统没法读取或者写入就蹦了。这问题我碰到次数很多。
解决方法:使用标准USB filter框架,然后自己填写功能
boildoctor
驱动牛犊
驱动牛犊
  • 注册日期2009-03-11
  • 最后登录2009-04-04
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望271点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2009-03-27 09:53
引用第6楼boildoctor于2009-03-27 09:48发表的  :
问题是否在这里?不一定,可能是你处理IRP_MJ_SICI 时候,里的写操作,或者读操作的时候 拦截了没把请求向下传递。结果硬盘读不了。重启蓝屏是因为重启以后 本地磁盘也加载驱动了。所以本地磁盘中的windows系统没法读取或者写入就蹦了。这问题我碰到次数很多。
解决方法:使用标准USB filter框架,然后自己填写功能



刚才写错了,是拦截IRP_MJ_SICI 时候,如果是处理了读操作,没向下传递,则无法识别磁盘。如果能识别磁盘,一写入就司机,则是写操作没处理,也没向下传递。重启电脑后,驱动加载到了本地磁盘上。导致本地磁盘windows系统没法写,或者没法读,任何一种,都会蓝屏。我前段时间几乎每天蓝屏10次以上。
AlexSho
驱动牛犊
驱动牛犊
  • 注册日期2008-01-10
  • 最后登录2017-12-01
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望164点
  • 贡献值0点
  • 好评度45点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2009-03-30 10:32
文件名太长了?
改成8.3试试。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2009-04-04 14:03
你简单将所有IRP都向下传递看是否成功,如果还是有问题,很可能是你安装有问题.
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2009-04-04 14:05
另外,请确认你是准备做disk.sys的lowerfilter还是class的lowerfilter或者其它
不同的安装是不一样的
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
diamond_dust
驱动牛犊
驱动牛犊
  • 注册日期2009-02-24
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2009-04-12 23:19
我也出现了和楼主同样的问题,对IRP全部不处理也会蓝屏。但是在vmare6中调试没问题,只是在实际环境中会出现这种情况。
是否和驱动的加载顺序有关?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2009-04-13 10:42
当然loader顺序设置错误也会导致问题
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部