cnmmd
驱动牛犊
驱动牛犊
  • 注册日期2004-03-15
  • 最后登录2018-05-26
  • 粉丝0
  • 关注0
  • 积分62分
  • 威望48点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1712回复:2

explorer.exe 发起的IRP_MJ_QUERY_INFORMATION,加载我的Filter Driver后,结果老是INVALID_PARAMETER

楼主#
更多 发布于:2004-07-28 15:17
我做了一个filter driver,只是处理了IRP_MJ_CREATE
用FileMon发现,一旦我的驱动加载后,Explorer.exe发起的IRP_MJ_QUERY_INFORMATION,结果老是INVALID_PARAMETER.
一旦没有加载,则返回成功。有人知道原因吗?
zhangc98
驱动牛犊
驱动牛犊
  • 注册日期2002-03-30
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-28 18:13
至少说说你怎么处理IRP_MJ_WRITE吧?
这么稀里糊涂地一问,
谁也不是神仙,怎么会知道原因?

目前:新手上路; 目标:高级站友; 理想:开国大佬; 方法:自己的努力+大家的关照!
cnmmd
驱动牛犊
驱动牛犊
  • 注册日期2004-03-15
  • 最后登录2018-05-26
  • 粉丝0
  • 关注0
  • 积分62分
  • 威望48点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-07-29 11:52
我的filter driver只是处理了IRP_MJ_CREATE,在里面获取文件路径,与某目标文件路径对比,发现吻合的话,修改FileObject->FileName
,并

Irp->IoStatus.Information = IO_REPARSE;

//ExFreePool( FileNameBuffer);
Irp->IoStatus.Status = STATUS_REPARSE;

IoCompleteRequest(Irp, IO_NO_INCREMENT);

return STATUS_REPARSE;

如果不吻合,则:
IoSkipCurrentIrpStackLocation( Irp );

return IoCallDriver( ( ( PPADLOCKFILTER_DEVICE_EXTENSION )DeviceObject->DeviceExtension )->AttachedToDeviceObject, Irp );


其他的IRP都直接
IoSkipCurrentIrpStackLocation( Irp );

return IoCallDriver( ( ( PPADLOCKFILTER_DEVICE_EXTENSION )DeviceObject->DeviceExtension )->AttachedToDeviceObject, Irp );


游客

返回顶部