bj751212
驱动牛犊
驱动牛犊
  • 注册日期2004-10-11
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1410回复:8

有关过滤驱动的几点疑问,请大家讨论

楼主#
更多 发布于:2004-11-24 10:00
我做了个禁用CDROM的驱动,用IoGetDeviceObjectPointer()得到
L"\Device\CdRom0"的DEVICE_OBJECT,再用IoGetDeviceObjectPointer()创建FIDOG挂接到DEVICE_OBJECT上
拦截IRP,有几个问题如下:
1:若CDROM中已有CD,这时CDROM仍可访问,只有将CD取出CDROM才被
禁用。
2:若我想在一个驱动中禁用多个设备,怎么做,比如说要禁用2个
串口。
欢迎大家讨论
bj751212
驱动牛犊
驱动牛犊
  • 注册日期2004-10-11
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-24 10:00
自己先顶一下
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-24 11:15
我在这篇帖子里的代码可以达到你的第一个目的:
http://www.driverdevelop.com/forum/html_81438.html?1101265997
bj751212
驱动牛犊
驱动牛犊
  • 注册日期2004-10-11
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-24 11:18
我试试

[编辑 -  11/24/04 by  bj751212]
bj751212
驱动牛犊
驱动牛犊
  • 注册日期2004-10-11
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-24 12:12
tooflat兄,你的代码我看了,没有创建对象,那怎么建立符号连接
以用来动态调用呢
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2004-11-25 13:36
tooflat兄,你的代码我看了,没有创建对象,那怎么建立符号连接
以用来动态调用呢

他的无须动态调用,加载驱动的时候禁用,卸载的时候恢复.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2004-11-25 13:43
还有在UNLOAD里应该调用ObDereferenceObject解除对文件对象的引用.不然有可能对该设备对象的其他过滤驱动产生影响.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bj751212
驱动牛犊
驱动牛犊
  • 注册日期2004-10-11
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-25 14:29
tooflat的驱动用startservice()总是返回失败,我在驱动代码中加上
debugprint,一到startservice()就黑屏重启了,他是找到CDROM的
驱动,直接替换掉IRP处理过程,Unload时恢复,这样做会不会太暴力
呢,这种方法行不行呢,请大家讨论
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-11-25 16:56
tooflat的驱动用startservice()总是返回失败,我在驱动代码中加上
debugprint,一到startservice()就黑屏重启了,他是找到CDROM的
驱动,直接替换掉IRP处理过程,Unload时恢复,这样做会不会太暴力
呢,这种方法行不行呢,请大家讨论

可能有点,你不妨把它的贴出来讨论讨论
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部