阅读:1410回复:8
有关过滤驱动的几点疑问,请大家讨论
我做了个禁用CDROM的驱动,用IoGetDeviceObjectPointer()得到
L"\Device\CdRom0"的DEVICE_OBJECT,再用IoGetDeviceObjectPointer()创建FIDOG挂接到DEVICE_OBJECT上 拦截IRP,有几个问题如下: 1:若CDROM中已有CD,这时CDROM仍可访问,只有将CD取出CDROM才被 禁用。 2:若我想在一个驱动中禁用多个设备,怎么做,比如说要禁用2个 串口。 欢迎大家讨论 |
|
沙发#
发布于:2004-11-24 10:00
自己先顶一下
|
|
板凳#
发布于:2004-11-24 11:15
我在这篇帖子里的代码可以达到你的第一个目的:
http://www.driverdevelop.com/forum/html_81438.html?1101265997 |
|
地板#
发布于:2004-11-24 11:18
我试试
[编辑 - 11/24/04 by bj751212] |
|
地下室#
发布于:2004-11-24 12:12
tooflat兄,你的代码我看了,没有创建对象,那怎么建立符号连接
以用来动态调用呢 |
|
5楼#
发布于:2004-11-25 13:36
tooflat兄,你的代码我看了,没有创建对象,那怎么建立符号连接 他的无须动态调用,加载驱动的时候禁用,卸载的时候恢复. |
|
|
6楼#
发布于:2004-11-25 13:43
还有在UNLOAD里应该调用ObDereferenceObject解除对文件对象的引用.不然有可能对该设备对象的其他过滤驱动产生影响.
|
|
|
7楼#
发布于:2004-11-25 14:29
tooflat的驱动用startservice()总是返回失败,我在驱动代码中加上
debugprint,一到startservice()就黑屏重启了,他是找到CDROM的 驱动,直接替换掉IRP处理过程,Unload时恢复,这样做会不会太暴力 呢,这种方法行不行呢,请大家讨论 |
|
8楼#
发布于:2004-11-25 16:56
tooflat的驱动用startservice()总是返回失败,我在驱动代码中加上 可能有点,你不妨把它的贴出来讨论讨论 |
|
|