Advantages of the Filter Manager Model 过滤器管理模型的优势
过滤管理器模型和传统过滤驱动模型相比有下列优势:
- 更好的控制过滤加载顺序 不像传统的过滤驱动 ,微过滤驱动能被加载在任何时候并且附属在正确的位置 ,这由它的高度决定(altitude)。
- 能够在系统运行时卸载 不像传统的过滤驱动 ,不能够在系统运行时卸载 。微过滤驱动能在任何时候卸载 ,并且它能防止被卸载在必要的时候 。过滤管理器同步安全的移除所有附属它的微过滤驱动 ,并且它控制操作完成在微过滤驱动被卸载以后 。
- 能仅处理必要的操作 过滤管理器用回调模型,这样微过滤驱动能选择正确的I/O操作(IRP-based, fast I/O, or FSFilter)去过滤 。微过滤驱动接收已近注册回调例程的I/O请求。微过滤驱动能注册一个唯一的前操作或后操作回调例程或都注册 ,并且,它能忽略确定的操作类型 ,例如paging I/O 和 cached I/O。
- 更高效的用内核栈 过滤管理器最优的减少它使用的内核栈的数量 ,并且回调模型减少了栈上微过滤驱动的影响 。过滤管理器减少对循环 I/O的影响 ,通过支持 filter-initiated I/O,它仅可见在栈里的下级驱动
- 减少冗余代码 对微过滤驱动来说,过滤管理器以一些减少代码数量 ,例如提供 名称产生 和 缓存被多个微过滤驱动使用的文件名 基本结构 。过滤管理器附属卷 ,并且通知微过滤驱动当卷可用时 。过滤管理器以最优的方式支持多重处理器系统 ,这使得同步更有效并更少出错 。
- 降低复杂性 过滤管理器简化过滤I/O请求通过提供支持通用功能例程 ,例如 命名 ,上下文 ,管理,用户模式和内核模式通信 和隐藏文件系统建的不同 。过滤管理器操纵确定的任务代表微过滤驱动 ,例如 ,挂起 IRPs(pending IRPs) , 列举(enumerating)和 附属(attaching) 文件系统栈
- 更容易添加新的操作 因为微过滤驱动仅注册它们操纵的 I/O操作,支持添加新的操作给过滤管理器但不破坏已存在的微过滤驱动
- 对多种平台的支持 微过滤驱动能运行在任何支持过滤管理器的Windows版本 。如果微过滤驱动注册一个执行时间不可用的I/O操作,对于那个操作,过滤管理器简单的不调用微过滤驱动 。微过滤驱动能编程性的决定是否功能有效 ,并且 过滤管理器结构是可扩展的 。
- 对用户模式应用程序有很好的支持 过滤管理器为用户模式服务提供通用的方法,并且控制和微过滤驱动运行的程序 。过滤管理器 用户模式库,Filterlib.dll,能够通信在用户模式服务或控制程序 和微过滤驱动 。 Filterlib.dll 也为管理工具提供接口