|
|
发表于 2009-4-3 12:54:49
|
显示全部楼层
通常每个设备上都挂了不止一个驱动,这些驱动一起形成一个链栈。2 L2 i1 |5 C! Z5 D
每当上面有IRP发下来(即用户要通过IRP请求驱动去操作设备),4 k$ T' q4 ]& T, P& t7 f
总是最上面的那个驱动先得到处理权。
$ f+ k% k2 P2 ~4 W! H该驱动可以按照自己的意愿去返回结果,也可以继续往下传送IRP,, |4 P. o" a' \# @) {: x
让下面的驱动去处理。" Q! v: p; w+ B) G t
# Y& d- T' B t. B1 d这个很类似于dos时代的hook中断服务程序(如果你做过的话会很熟悉)。2 @, ~4 d1 s1 L$ |1 w+ @7 t
而dos下面的虚拟磁盘,内存磁盘等等虚拟的设备,就是通过hook相应的中断服务实现的 |
|