Filter Manager Concepts 过滤管理器思想
2011-01-11 11:45
239 查看
过滤管理器被 windows 安装 ,但是仅当微过滤驱动被加载时才生效 。对于一个目标卷 ,过滤管理器依附文件系统栈 。微过滤驱动直接依附文件系统栈 ,通过注册微过滤驱动要过滤的I/O操作的过滤管理器
传统过滤驱动的在文件系统 I/O 栈的位置和其它过滤驱动的位置是由加载顺序组(load order group)决定的 。例如 ,病毒过滤驱动在栈中应该高于复制过滤驱动 ,因此它能探测病毒并且为文件消毒 ,在复杂到远程服务之前 。因此 ,病毒过滤驱动比复杂过滤驱动先加载 。每一个价值顺序组有一个对于系统定义的类和类的GUID ,INF 文件将用指定过滤驱动的类GUID 。
像传统的过滤驱动 ,微过滤驱动也有个特定的顺序 。然而,顺有一个唯一标识符叫做高度(altitude),在一个特定的卷 ,依附在特定高度的微过滤驱动被叫做微过滤驱动的一个实例
微过滤驱动的高度 确保微过滤驱动被加载在正确的位置,相对其他微过滤驱动 ,它决定过滤管理器调用微过滤驱动去控制I/O的顺序 。高度被微软分配和管理 。
下图展出一个简单的I/O栈 ,它有一个过滤管理器和三个微过滤驱动 。
微过滤驱动能过滤IRP-based I/O 、fast I/O和文件系统过滤回调操作 。对于每个选择过滤的I/O操作,微过滤驱动能注册前操作回调例程。后操作回调例程或都注册 。当处理一个I/O操作 ,过滤管理器将调用它的前操作回调例程按照高度的顺序从高到底(A,B, C),一次执行 。当过滤管理器收到I/O完成请求 ,它调用每个微过滤驱动的后操作回调例程,顺序正好相反(C,B,A)。
对于互操作性的传统的过滤驱动 ,过滤管理器能附加过滤设备对象到文件系统 I/O 栈多于一个位置 。每一个过滤管理器设备对象被叫做A型框架 。从传统的过滤驱动的观点 ,每一个过滤管理器框架 正是另一个传统过滤驱动 。
每一个过滤管理器框架代表一系列高度 。如果传统的过滤驱动附属于文件系统栈 ,系统附属过滤管理器框架 ,它有一系列高度在传统过滤驱动上面和下面 ,为了确保微过滤驱动附属在正确的位置上 。
如果微过滤驱动被卸载或重载 ,它被重载和卸载时在相同的高度相同的框架。
下图展示了一个简单的I/O栈有俩个过滤管理器架构 、微过滤驱动实例和一个传统的过滤驱动 。
传统过滤驱动的在文件系统 I/O 栈的位置和其它过滤驱动的位置是由加载顺序组(load order group)决定的 。例如 ,病毒过滤驱动在栈中应该高于复制过滤驱动 ,因此它能探测病毒并且为文件消毒 ,在复杂到远程服务之前 。因此 ,病毒过滤驱动比复杂过滤驱动先加载 。每一个价值顺序组有一个对于系统定义的类和类的GUID ,INF 文件将用指定过滤驱动的类GUID 。
像传统的过滤驱动 ,微过滤驱动也有个特定的顺序 。然而,顺有一个唯一标识符叫做高度(altitude),在一个特定的卷 ,依附在特定高度的微过滤驱动被叫做微过滤驱动的一个实例
微过滤驱动的高度 确保微过滤驱动被加载在正确的位置,相对其他微过滤驱动 ,它决定过滤管理器调用微过滤驱动去控制I/O的顺序 。高度被微软分配和管理 。
下图展出一个简单的I/O栈 ,它有一个过滤管理器和三个微过滤驱动 。
微过滤驱动能过滤IRP-based I/O 、fast I/O和文件系统过滤回调操作 。对于每个选择过滤的I/O操作,微过滤驱动能注册前操作回调例程。后操作回调例程或都注册 。当处理一个I/O操作 ,过滤管理器将调用它的前操作回调例程按照高度的顺序从高到底(A,B, C),一次执行 。当过滤管理器收到I/O完成请求 ,它调用每个微过滤驱动的后操作回调例程,顺序正好相反(C,B,A)。
对于互操作性的传统的过滤驱动 ,过滤管理器能附加过滤设备对象到文件系统 I/O 栈多于一个位置 。每一个过滤管理器设备对象被叫做A型框架 。从传统的过滤驱动的观点 ,每一个过滤管理器框架 正是另一个传统过滤驱动 。
每一个过滤管理器框架代表一系列高度 。如果传统的过滤驱动附属于文件系统栈 ,系统附属过滤管理器框架 ,它有一系列高度在传统过滤驱动上面和下面 ,为了确保微过滤驱动附属在正确的位置上 。
如果微过滤驱动被卸载或重载 ,它被重载和卸载时在相同的高度相同的框架。
下图展示了一个简单的I/O栈有俩个过滤管理器架构 、微过滤驱动实例和一个传统的过滤驱动 。
相关文章推荐
- Filter Manager and Minifilter Driver Architecture 过滤管理器和微过滤驱动架构
- Filter Manager Support for Minifilter Drivers 过滤管理器对微过滤驱动的支持
- filter不能过滤struts2中的action
- Session超时跳转到指定页面(filter实现)解决了图片被过滤问题
- hbase SingleColumnValueFilter 列不存在 无法过滤
- fiddler filters 使用(fiddler只显示指定请求,fiddler不显示指定请求,即filter请求过滤)
- session Filter 排除页面不被过滤
- Revit二次开发——加快过滤速度,以及对ElementIntersectsSolidFilter的API的Bug的处理办法
- Oracle Rules Manager 和 Oracle Expression Filter 组件 说明
- TDI FILTER 网络过滤驱动完全解析
- Python过滤函数filter()使用自定义函数过滤序列实例
- sphinx SetFilter 单个过滤器最大过滤值数目
- Scrapy源码分析(三):信号管理器SignalManager
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- Spring 编码过滤 -- 解析Filter实现原理
- java的文件过滤FileFilter
- 文件的过滤(FileFilter)
- Asp.Net MVC Filter权限过滤使用说明
- OpenSessionInViewFilter——>TransactionSynchronizationManager