文件系统驱动.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文件系统驱动

第六章 文件管理 概 述 Windows文件系统概述 文件系统驱动 NTFS的组织结构 文件系统的系统调用 Windows文件系统概述 CDFS,UDF:主要用于光盘,其中UDF应用更广 FAT = File Allocate Table 包括FAT12,FAT16,FAT32。目前应用最多的是FAT32 ,兼容的系统有Windows 9x,2000,2003,XP等 NTFS = New Technology File System 主要针对Windows NT系列 支持安全性,磁盘配额,基于日志的数据恢复,多数据流,稀疏文件压缩等一系列新特性 文件系统驱动 文件系统驱动(File System Driver,即FSD)隶属于I/O驱动的一部分,是将上层传来的抽象命令和参数转化为具体的命令和参数,等待下层处理完成后将操作的结果或状态返回给上层。 相对底层硬件驱动而言,FSD是高层内核模式驱动程序,用于扩展底层驱动的功能,进而实现特定的文件系统。 分为本地FSD和远程FSD 本地FSD,直接管理本地主机的文件卷上的数据; 远程FSD,允许用户连接到远程主机并存取数据。 文件系统驱动 本地FSD 文件系统驱动 远程FSD NTFS的组织结构 NTFS磁盘结构 MFT表 NTFS文件组织 NTFS磁盘结构 卷:代表了一个逻辑分区,是在磁盘被格式化为NTFS格式的时候创建的,也可以用多个磁盘创建RAID卷。 扇区:将磁道划分成的大小相同的区域。 簇:由若干个扇区组成。 LCN:对整个卷中所有的簇进行的编号。 VCN:针对某一特定文件内的编号。 NTFS的磁盘结构 NTFS磁盘结构 扇区:将磁道划分成的大小相同的区域。 簇:由若干个扇区组成。 簇的大小又称簇因子,会因磁盘大小不同而不同 簇因子对文件的存取效率有一定影响,使用大的簇因子可以加快分配速度,当然为之付出的代价是一小部分空间会被浪费掉 MFT表 MFT=Master File Table,即主文件表,由一系列的文件记录组成,每个记录大小固定为1KB。卷上的每个文件,包括MFT本身,在MFT中都有一行记录。前16个记录被称为元数据,是系统保留的,包含系统启动及正常运行必须的信息。 每个MFT记录都对应着不同的文件,如果一个文件有很多的属性就可能需要多个文件记录 NTFS文件组织 NTFS中将文件作为属性和值的集合来处理,文件的内容被看作是未命名数据属性(Unnamed Data Attribute),其他一些常用的文件属性包括文件名,文件拥有者,时间戳等。每个文件属性都由单独的流(Stream,即简单的字节序列)组成。 常驻属性 :属性值能后直接存放在MFT中时,该属性就被称作是常驻属性。有些属性总是常驻的,这样NTFS才能通过他们找到其他的非常驻属性 。 每个属性都是以一个标准头(也称属性头部)开始的,其中包含了该属性的信息和NTFS用来管理该属性的信息。标准头总是常驻的,并且记录着属性值是否为常驻。对于常驻属性,头中还包含了属性值的偏移量和属性值长度 文件系统的系统调用 文件系统调用的一般过程 实 验 创建文件 查询文件 创建文件 实验目的:验证Win32 API函数CreateFile()对内核函数的调用过程。Win32 API函数CreateFile()实际上先调用NtCreateFile(),再调用IopCreateFile(),由IopCreateFile()完成具体的操作。 实验内容:实验用Visual Studio 2005编写一个创建文件的程序CreateFile,并用Windbg对该程序进行调试,验证创建文件的执行过程。同时在WRK源代码总中加入一些调试打印语句,在WinDbg调试窗口中显示函数内部的调用过程。 创建文件 实验过程: 1. 在VS中创建工程CreateFile,同时设置生成符号文件 在工程属性中:Configuration-Linker-Debugging,在右侧的窗口中将Generate Debug Info的值设为Yes; Configuration-C/C++-General,将Debug Information Format的值设为Program Database for Edit Continue(/ZI) Configuration-C/C++-Optimization,将Optimization的值设置为Disabled (/Od) 2. 加入程序源代码 3. 编译并生成EXE文件 创建文件 实验过程: 4. 在WinDbg的File选项中选择Open Executable,打开CreateFile.exe文件 5. 用x命令查看函数在内存中的

文档评论(0)

book1986 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档