NTFS文件系统规范(一)

扇区数据结构

非驻留数据中的每个簇都有一个特定的序号,这个序号就叫做虚拟簇号,虚拟簇号0指向数据流的第一个簇。
 
卷中的每一个簇都有一个特定的序号,这个序号就叫做逻辑簇号,逻辑簇号0指向卷中的第一个簇(引导扇区)。
 
存放在间隔的簇中的属性数据称为。每一个流都由起始簇号和尺寸来描述。流的起始簇号是相对于前一个流的偏移,该值是一个有符号数。流描述的格式如下: 

名字
偏移
尺寸
说明
SD_Desc
0
1
流描述说明,高4位(M)描述流描述偏移的字节数,低4位(N)描述流描述尺寸的字节数
SD_Size
1
N
当前流的尺寸
SD_Off
N+1
M
当前流相对于上一个流的偏移,如果该值的最高位为1则表示该值是一个负数

 一个流描述之后紧随着下一个流描述,如果下一个描述的SD_Desc为0则表示当前描述是最后一个。
一般情况下压缩文件和稀疏文件数据都以流的形式描述。
 
例1:通常情况
流描述:21 20 ED 5 22 48 7 48 22 21 28 C8 DB 0
流1:     SD_Desc = 21 –偏移占2个字节,尺寸占1个字节。
              SD_Size = 20 (1字节)
              SD_Off   = 5ED (2字节)
              Offset = 5ED
              Length= 20
流2:     SD_Desc = 22 –偏移占2个字节,尺寸占2个字节。
              SD_Size = 748 (2字节)
              SD_Off   = 2248 (2字节)
              Offset = 2835 (2248+5ED)
              Length=748
流3:     SD_Desc = 21 –偏移占2个字节,尺寸占1个字节。
              SD_Size = 28 (1字节)
              SD_Off   = DBC8 (2字节)
              Offset = 3FD (2835+FFFFDBC8)
              Length=28
流4:     SD_Desc = 0。描述结束标志
小计:
    0x20       个簇存放在簇号    0x5ED      开始处
  0x748     个簇存放在簇号    0x2853    开始处
  0x28       个簇存放在簇号    0x3FD      开始处
 
例2:压缩流
流描述:11 08 40 01 08 11 10 08 11 0C 10 01 04 00
流1:     SD_Desc = 11 –偏移占1个字节,尺寸占1个字节。
              SD_Size = 8 (1字节)
              SD_Off   = 40 (1字节)
              Offset = 40
              Length= 8
流2:     SD_Desc = 01 –偏移占0个字节,尺寸占1个字节。
              SD_Size = 8 (1字节)
              SD_Off   = -
              Offset = -
              Length= 8
流3:     SD_Desc = 11 –偏移占1个字节,尺寸占1个字节。
              SD_Size = 10 (1字节)
              SD_Off   = 8 (1字节)
              Offset = 48 (40+8)
              Length= 20
流4:     SD_Desc = 11 –偏移占个字节,尺寸占1个字节。
              SD_Size = C (1字节)
              SD_Off   = 10 (1字节)
              Offset = 58(48+10)
              Length= C
流5:     SD_Desc = 01 –偏移占0个字节,尺寸占1个字节。
              SD_Size = 4
              SD_Off   = -
 
本站域名:www.mrtlab.com | QQ交流群:250649022 | 使用条款 | 备案:鄂ICP备2020023514号
MRT数据恢复网,专业的硬盘固件维修与数据恢复技术资料提供站!
Copyright 2003-2020 Powered By MrtLab