ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:7860回复:37

怎样写一个驱动就能禁止光驱、软驱、USB,高分相送

楼主#
更多 发布于:2004-07-20 18:15
怎样写一个驱动就能禁止光驱、软驱、USB,高分相送

最新喜欢:

pilixuankepilixu... David_211David_...
gangg
驱动牛犊
驱动牛犊
  • 注册日期2004-04-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-09 19:57
写一个过滤驱动就可以了,拦截相关的IRP,如IRP_DEVICE_CONTROL!
Dino
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-12 09:46
楼上的能不能说详细一点啊?到底怎么样对所有的设备进行filter啊?我也可以贡献几十分。
Death is only the beginning
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-14 13:17
已经搞定,现在光驱、软驱测试通过
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-14 23:26
这么简单?搞定了?
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-19 09:56
ysz_oo可以给一些资料吗?我一直在关注这个主题。
我愿意为大家整理整理供大家一起学习
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2004-08-19 12:59
已经搞定,现在光驱、软驱测试通过


请简单介绍下原理
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-19 16:06
基本上就是用IoGetRelatedDeviceObject挂接设备
    fileSysDevice = IoGetRelatedDeviceObject( fileObject );
pDriverObject = fileSysDevice->DriverObject;

然后拦截此DriverObject的IRP_MJ_CREATE、IRP_MJ_SET_INFORMATION、IRP_MJ_DEVICE_CONTROL
xiaohuating
驱动牛犊
驱动牛犊
  • 注册日期2004-04-15
  • 最后登录2018-01-09
  • 粉丝0
  • 关注0
  • 积分48分
  • 威望27点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2004-09-01 16:44
你好!
    我想知道怎么拦截此DriverObject的IRP_MJ_CREATE、IRP_MJ_SET_INFORMATION、IRP_MJ_DEVICE_CONT;
    我写了个Driver,用于屏蔽CDROM,似乎不用用IoGetRelatedDeviceObject吧:

   DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]
                              = MyDrvDeviceControl;
    DriverObject->MajorFunction[IRP_MJ_SET_INFORMATION]
                              = MyDrvDeviceControl;

NTSTATUS MyDrvDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp )
{
    NTSTATUS   ntStatus;
    Irp->IoStatus.Status = STATUS_SUCCESS;
    Irp->IoStatus.Information = 0;

//#define FILE_DEVICE_CD_ROM              0x00000002
//#define FILE_DEVICE_CD_ROM_FILE_SYSTEM  0x00000003

  if(DeviceObject->DeviceType  == FILE_DEVICE_CD_ROM ||  
   DeviceObject->DeviceType  ==  
             FILE_DEVICE_CD_ROM_FILE_SYSTEM)
   {
         //????????????
      Irp->IoStatus.Information = 1;
   }

   ntStatus = Irp->IoStatus.Status;
   IoCompleteRequest( Irp, IO_NO_INCREMENT );
   return ntStatus;
}
hongsing
驱动小牛
驱动小牛
  • 注册日期2004-05-22
  • 最后登录2012-04-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-02 11:07
大哥,可以帖个源码来看看吗:)?
偶是新手,求知欲很强。
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-09-08 12:05
我是用DDK里边的例子实现的,没想到用驱动过滤做这么简单,强!
在交流中学习。。。
ildee
驱动牛犊
驱动牛犊
  • 注册日期2003-01-16
  • 最后登录2005-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-09-09 12:08
楼上的很强啊,我是每一种写了一个过滤驱动,看来还需要学习阿!!
Dino
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-10-19 13:49
ysz_oo:我想问一下,你在拦截到这些IRP后都做了什么处理,返回什么值?我返回STATUS_UNSUCCESSFUL后,想要再让软驱可用就不行了,必须要重启系统才行。
Death is only the beginning
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-10-20 10:56
返回STATUS_INSUFFICIENT_RESOURCES就行了
Dino
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-10-21 15:28
ysz_oo:我试了一下,返回STATUS_INSUFFICIENT_RESOURCES还是不行,我试的时候是软驱里没有软盘,如果有软盘的时候禁用软驱,是可以恢复的。我是对\\DosDevice\A:这个设备进行filter的,你呢?
Death is only the beginning
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-10-22 10:35
对\\Device\\Floppy0拦截,应该可以的
Dino
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-10-25 13:32
ysz_oo:我试过了,拦截\Device\Floppy0,但如果软驱里没有软盘还是不行。
Death is only the beginning
ildee
驱动牛犊
驱动牛犊
  • 注册日期2003-01-16
  • 最后登录2005-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-10-28 11:20
用upperfilter可以阿,直接返回access_denied,就行啦!!
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-10-29 09:20
哪位大虾知道如何禁止U盘和移动硬盘呀?

[编辑 -  10/29/04 by  aasa2]
技术交流:aasa2@21cn.com QQ群:10863699
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
19楼#
发布于:2004-10-29 10:33
哪位大虾知道如何禁止U盘和移动硬盘呀?

[编辑 -  10/29/04 by  aasa2]


你不是已经实现了吗?
上一页
游客

返回顶部