阅读:1625回复:4
安装多个驱动??
如果在一台主机上安装多个驱动,应该注意哪些问题呢?
我在主机上安装了sfilter和filemon,发现二者可以同时存在。 是因为filemon仅对文件进行监控,还是二者有上下之分? 我觉得二者应该同是过滤驱动,但不清楚IRP究竟先由谁来处理? 不知道大牛们可以给指点一下不? |
|
沙发#
发布于:2007-03-19 06:47
有上下之分。用DeviceTree看看就知道谁过滤谁了
|
|
|
板凳#
发布于:2007-03-19 09:34
多谢, filemon在sfilter之上.
但如果是不同的中间层驱动呢,会不会产生IRP混乱处理的情况. 也就是是说如果2个驱动属于同一个层次上,会不会相互产生干扰:一个驱动处理读请求,另一个驱动处理写请求? 因为我觉得在一个主机上可能会需要安装相同层次的不同驱动, 如果出现这样的情况,应该注意那些问题呢? |
|
地板#
发布于:2007-03-20 07:04
对于Windows驱动,要有Device Stack的概念,所有的IRP都是由在这个stack中的某个Device Object开始向下传的。stack并不会产生分支,在其中的Device Object都是parent-child关系,并没有sibling,所以不会有2个Device Object处在同一个stack location并且会产生分工之说
|
|
|
地下室#
发布于:2007-03-20 08:28
我在主机上测试2个中间层驱动时发现:
谁先安装就先由谁处理,而且在DeviceTree中可以看到 其设备对象对应的Attached Device都是0x0;应该都是位于其所在设备栈的顶端. 而且先安装的那个驱动可以正常工作,后安装的那个则有时可以收到IRP,有时则没有. 所以我觉得如果是安装同一个层次的驱动,可能会产生干扰的情况.(个人理解) |
|