缓存管理器客户
接下来的组件是缓存管理器提供接口的典型用户。那些组件仅仅被认为是缓存管理器的客户。
1.文件系统驱动,比如NTFS,FASTFAT,CDFS,以及其他第三方文件系统使用缓存管理器的拷贝接口服务来执行每一个文件数据操作。这样会有很高的性能,因为一旦数据被缓存在系统内存,后续的数据访问操作可以被立即执行,而不用再从二级存储媒介获得数据。文件系统驱动仅仅使用缓存管理器来缓存文件系统元数据,包括卷结构,目录信息,磁盘自由空间位图(置位表),文件关联扩展属性,其他类似信息。许多这些结构经常被文件系统驱动锁定在内存。注意,缓存管理器不解释被缓存数据流的类型;它仅仅知道关于文件对象数据结构和与文件对象有关的数据流的信息。
文件系统驱动仅仅典型的使用缓存管理器提供的预读和延迟写功能,尽管这是可能的,某一成熟的文件系统实现可以添加他们自己对预读和延迟写操作的支持。最后,所有的文件系统驱动必须使用缓存管理器提供的文件流操作函数来正确的和缓存管理器协作。
2.网络重定向器和文件系统驱动实现很相似;但是,那些模块通过网络从文件服务器获得数据,代替了直接从绑定在宿主系统的二级存储设备取得数据。那些组件一般会在系统缓存中缓存大量数据流来提供极快性能,能和本地文件系统相比。 网络重定向器一般使用缓存管理器提供的拷贝接口。他们可能仅适用MDL接口来直接DMA数据进出系统缓存。那些组件仅仅从缓存管理器提供的预读和延迟写功能来获得好处。为了初始化和终止特定数据流上的缓存,或者去执行其他缓存操作函数,网络重定向器使用文件流操作函数。
3.网络文件服务器是缓存管理器的间接客户,因为它最终使用本地文件系统来获取访问文件数据。那些驱动从不直接调用缓存管理器例程。由于性能原因,文件服务器常常被实现为内核模式驱动。他们通过接受那些请求的文件系统驱动使用拷贝接口。文件系统服务器一般使用DMA来传输数据,直接进出系统缓存。为了做到这些,文件服务器使用MDL接口调用缓存管理器。由于文件服务器不能直接调用缓存管理器,他们使用特殊标记的读/写IRP发送到文件系统驱动来请求为一个文件流的特定虚拟地址范围创建一个MDL。在数据被传输完成以后,文件服务器通知文件系统驱动,先前创建的MDL现在可能被删除了。第九章,包含一个例子,关于文件服务器用来请求创建和删除系统缓存中数据缓冲区用的MDL的标记。
4.过滤驱动,或者其他为特定目的使用NT文件系统接口的驱动,是缓存管理器的间接客户。考虑一个过滤驱动,它提供被存储在较慢媒介(磁带或者光介质)上数据的硬盘缓存。这样的驱动使用本地文件系统服务来存储缓存信息。因此,过滤驱动是缓存管理器的间接客户,因为文件系统支持过滤驱动使用拷贝接口来传输数据进出系统内存。相似的,考虑一个提供HSM(High-Speed Memory)功能的过滤驱动。一个驱动从相对快的二级存储设备移动数据,比如磁盘,到一个慢速设备,比如磁带。为了帮助加速(speed
up)这个过程过滤驱动使用DMA来直接从系统缓存向磁带传输数据,因此,使用缓存管理器提供的MDL接口(通过发往文件系统驱动的读/写IRP中的特定标记)。在传输结束之后,过滤驱动将会通知文件系统驱动,之前创建的MDL可以被删除了。
表6-1列举了缓存管理器的客户使用的多种接口。

分享到:
相关推荐
底层的数据检索和操作则没有具体实现,但这并不妨碍我们从中学习到如何与I/O管理器、缓存管理器以及虚拟内存管理器进行交互的基础知识。 ### 后勤(Logistics) 在实际开发中,除了技术上的挑战外,还需要考虑到...
- **缓存管理器 II 和 III**:继续深入缓存管理器的主题,涵盖了缓存刷新、终止缓存操作、懒写功能等多个方面。 #### 文件系统驱动开发实践 - **编写文件系统驱动 I**:这一部分从设计的角度出发,引导读者逐步...
- **缓存管理器**:缓存管理器是Windows NT中一个重要的组件,本书分为三个部分详细介绍其功能、数据结构、与客户端的交互方式以及缓存管理接口等。 #### 六、编写文件系统驱动程序 - **文件系统设计**:这部分...
《Windows NT 文件系统内部原理(中文版)》是一本深入探讨Windows NT内核级文件系统的专业书籍。在Windows操作系统中,文件系统是管理和组织硬盘上数据的核心组件,它负责存储、检索、保护和共享文件。这本书详细...
在Windows NT系统中,文件系统采用的是NTFS(New Technology File System),这是一个先进的日志文件系统,具有许多高级特性,如事务处理、权限管理、文件加密、文件压缩和磁盘配额等。 首先,NTFS的核心设计包括...
《Windows NT 文件系统内部机制》随书源码包含了一系列与文件过滤驱动相关的代码示例,这对于深入理解Windows操作系统中的文件系统工作原理以及如何开发文件过滤驱动程序至关重要。文件过滤驱动(File Filter Driver...
《Windows NT File System Internals, A Developer's Guide》是一本深度剖析Windows NT文件系统(NTFS)的专业指南,旨在帮助开发者、系统管理员以及对操作系统内部运作感兴趣的读者理解NTFS的底层工作原理。...
~ZIP压缩格式 此为网上收集,实属不易。 虽沿未参阅,但精品,收之! windows nt file system internal 此书附有讲解中相应源代码! 唉,喜欢看的,教我学习啊!^_^ 与WINDOWS内核有关的
《Windows NT File System Internals(中文+英文)》
Windows NT File System Internals深入介绍NTFS文件系统的English书籍,佩带源码
Windows NT File System Internals深入介绍NTFS文件系统的English书籍,佩带源码
文件过滤驱动开发,压缩包2
《Windows NT 文件系统内幕》是一本深入探讨Windows NT操作系统中文件系统运作机制的专业书籍,包含了全部章节和源代码。这份资料对于理解Windows NT内核如何管理文件、存储数据以及优化系统性能具有极大的价值。...
在Windows NT中,缓存管理器与虚拟内存管理器(Virtual Memory Manager)、I/O管理器(I/O Manager)以及文件系统驱动(File System Driver)紧密协作。下面是几个关键概念的详细解释: 1. **文件流(File Streams)**: 每...
总之,《Windows NT 文件系统内部机制》的随书源码是一个宝贵的教育资源,它能帮助开发者、系统管理员和计算机科学专业的学生深入学习和探索Windows NT文件系统的设计和实现,从而提升他们在相关领域的专业技能。
windows-nt-file-system-internals-book:随Windows NT File System Internals附带的1.44MB 3.5软盘上的源代码
Windows NT技术内幕(第二版)pdf版