fanziee
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分336分
  • 威望74点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:1878回复:7

文件禁止访问输入密码框问题

楼主#
更多 发布于:2007-06-24 23:17
我在sfcreate里进行设置Irp->IoStatus.Status = STATUS_ACCESS_DENIED拒绝特定文件.
想在点击文件后提示输入密码,应用层显示密码输入框.如果密码验证正确,则再执行刚才的文件操作.
但是用STATUS_ACCESS_DENIED拒绝IRP会有"拒绝访问的提示框".
请问各位大虾怎么可以做到没有这个提示框并且拒绝此IRP.

最新喜欢:

wingmanwingma...
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
沙发#
发布于:2007-06-25 10:19
Ring3必须有常驻的应用程序,或者DLL~
没有战争就没有进步 X3工作组 为您提供最好的军火
fanziee
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分336分
  • 威望74点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-06-25 13:00
我有常驻的应用程序.
现在的问题是我拒绝此IRP会有一个"访问拒绝"的提示框,因为这个框是系统报出来的.干扰了我弹出的密码输入框.现在不想让这个系统弹出的框出现.
还有是不是我的方式有问题,不能拒绝IRP,而要改成取消此IRP,或别的方式.
现在比较困惑,请高手指点.
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
地板#
发布于:2007-06-26 12:35
当驱动发现指定文件有打开请求时,驱动通知上层应用进行用户校验,
然后驱动进入等待状态,等待上层应用的校验,最后把校验成功或失败
的结果告诉驱动,然后驱动根据结果或是禁止或是放行。
人总在矛盾中徘徊。。。
humerousman
驱动牛犊
驱动牛犊
  • 注册日期2007-04-12
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分390分
  • 威望40点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-06-26 16:33
devia大哥能不能给个代码的实例呢?
fanziee
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分336分
  • 威望74点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-06-29 00:12
非常谢谢devia 的指导,再问一下,我单击一个文件和双击一个文件irpSp->Parameters.Create.Options都是FILE_OPEN,怎么才能区分呢?
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
6楼#
发布于:2007-06-29 09:12
引用第5楼fanziee于2007-06-29 00:12发表的  :
非常谢谢devia 的指导,再问一下,我单击一个文件和双击一个文件irpSp->Parameters.Create.Options都是FILE_OPEN,怎么才能区分呢?


区分这个那得写Windows Shell 的COM插件
人总在矛盾中徘徊。。。
qianjunhua
驱动小牛
驱动小牛
  • 注册日期2003-12-08
  • 最后登录2013-02-27
  • 粉丝11
  • 关注0
  • 积分712分
  • 威望1052点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-07-03 16:33
对于这个问题 在驱动里面先返回pending
1:驱动通知application 显示输入密码的提示
2:驱动创建一个workthread和一个event 对象,在workthread里面等待这个 对象,
3:application 使用device io control code 通知驱动, 传递给驱动用户的密码
4:驱动得到密码后setevent 通知workthread 开始检测是不是正确的
5:<1>如果正确就打开文件了
5:  <2>不正确,这个时候才能complete 这个irp 并且设成denied。 不知道对不对啊呵呵 我没有写过呢 过一段时间我才开始写代码呵呵  版主见笑了啊
游客

返回顶部