Windows文件系统深入解析
1. 构建文件系统驱动的基础
要构建内核模式的文件系统驱动,必须拥有Windows可安装文件系统(IFS)工具包。Windows存在两种不同类型的文件系统驱动:
-本地文件系统驱动(Local FSDs):用于管理直接连接到计算机的卷。
-网络文件系统驱动(Network FSDs):允许用户访问连接到远程计算机的数据卷。
2. 本地文件系统驱动(Local FSDs)
本地文件系统驱动包含Ntfs.sys、Fastfat.sys、Udfs.sys、Cdfs.sys以及集成在Ntoskrnl.exe中的Raw FSD。以下是其详细工作流程:
1.注册与卷识别:本地FSD需向I/O管理器注册,注册后,当应用程序或系统首次访问卷时,I/O管理器会调用它进行卷识别。卷识别要检查卷的引导扇区和文件系统元数据。
2.引导扇区的作用:每个Windows支持的文件系统格式的第一个扇区是卷的引导扇区,它包含足够信息,使本地FSD能识别卷的格式并定位元数据。
3.设备对象与连接:当本地FSD识别出卷后,会创建一个代表已挂载文件系统格式的设备对象。I/O管理器通过卷参数块(VPB)将存储设备创建的卷设备对象与FSD创建的设备对象连接起来,从而将针对卷设备对象的I/O请求重定向到FSD设备对象。
4.性能优化:为提高性能,本地FSD通常使用缓存管理器缓存文件系