zhangleierli
驱动小牛
驱动小牛
  • 注册日期2007-01-31
  • 最后登录2017-05-24
  • 粉丝1
  • 关注0
  • 积分3分
  • 威望158点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:999回复:2

关于文件过滤驱动read分发例程的一个问题?

楼主#
更多 发布于:2007-09-03 16:51
看了楚大侠的文件过滤驱动,对过滤IRP_MJ_READ里有一点不解.

NTSTATUS
SfRead (
        IN PDEVICE_OBJECT DeviceObject,
        IN PIRP Irp
        )
{

                     if (IS_MY_CONTROL_DEVICE_OBJECT(DeviceObject))
    {
        Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST;
        Irp->IoStatus.Information = 0;
        IoCompleteRequest( Irp, IO_NO_INCREMENT );
        return STATUS_INVALID_DEVICE_REQUEST;
    }

    if(devExt->StorageStackDeviceObject != NULL)
    {
        return SfPassThrough(DeviceObject,Irp);
    }
    
}


就是这个判断if(devExt->StorageStackDeviceObject != NULL) 没有明白,为什么StorageStackDeviceObject != NULL  就把IRP往下传?


lohcve
驱动牛犊
驱动牛犊
  • 注册日期2007-08-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分400分
  • 威望41点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-11-12 14:01
是的,我也这样认为,应该是if(devExt->StorageStackDeviceObject == NULL)。
zhangleierli
驱动小牛
驱动小牛
  • 注册日期2007-01-31
  • 最后登录2017-05-24
  • 粉丝1
  • 关注0
  • 积分3分
  • 威望158点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-09-03 17:19
刚刚又看了下,怀疑是不是楚大侠写错了,应该是if(devExt->StorageStackDeviceObject == NULL), 说明是我们的过滤文件系统设备,此时不做处理,直接passthrough
游客

返回顶部