1.关于驱动分层与过滤驱动的关系。我一直搞不清驱动分层与过滤驱动的分别,我现在自己的理解是:对于过滤驱动来说,它处理完截获的IRP后直接调用IoCallDriver发送给下一层设备,而对于分层驱动来说某一层的驱动完成IRP后使用IoCompleteRequest向IO管理器提交,再由IO管理器将这个“半成品”IRP发给其下一层驱动。我的理解对吗?另外对于文件系统驱动跟磁盘驱动来说他们属于分层驱动?还是文件系统驱动作为磁盘驱动的过滤驱动?因为按我的理解文件系统驱动既可以设计成磁盘驱动的过滤驱动,也可以设计成磁盘驱动的上层驱动,好象没什么区别(唯一有点区别好象就是不能在扇区级别过滤,因为文件系统把文件名解析成扇区号后直接交给磁盘驱动了,而过滤驱动又不能插到两个驱动之间)
2. IoCallDriver一定返回的一定是STATUS_PENDING吗,可不可能直接返回STATUS_SUCCESS ?
谢谢