词汇 |
每一个MFT记录的每个属性都有一个标准标题。这个标题存储了有关属性类型,大小,名称(可选)和是否常驻的信息。
此属性的大小取决于两方面:是否有名称,是否常驻。为了简化表格,所有四个可能性都全部显示(有些值已经填好了)。
偏移量 | 大小 | 值 | 描述 |
---|---|---|---|
0x00 | 4 | 属性类型 (如 0x10, 0x60) | |
0x04 | 4 | 长度 (包括此标题) | |
0x08 | 1 | 0x00 | 非常驻标记 |
0x09 | 1 | 0x00 | 名称长度 |
0x0A | 2 | 0x18 | 到名称的偏移量 |
0x0C | 2 | 0x00 | 标记 |
0x0E | 2 | 属性标识符 (a) | |
0x10 | 4 | L | 属性长度 |
0x14 | 2 | 0x18 | 到属性的偏移量 |
0x16 | 1 | 编入索引的标记 | |
0x17 | 1 | 0x00 | 填料 |
0x18 | L | 属性 |
(a) 每个属性都有一个唯一的标识符。
偏移量 | 大小 | 值 | 描述 |
---|---|---|---|
0x00 | 4 | 属性类型 (如 0x90, 0xB0) | |
0x04 | 4 | 长度 (包括此标题) | |
0x08 | 1 | 0x00 | 非常驻标记 |
0x09 | 1 | N | 名称的长度 |
0x0A | 2 | 0x18 | 到名称的偏移量 |
0x0C | 2 | 0x00 | 标记 |
0x0E | 2 | 属性标识符 (a) | |
0x10 | 4 | L | 属性长度 |
0x14 | 2 | 2N+0x18 | 到属性的偏移量(b) |
0x16 | 1 | 编入索引的标记 | |
0x17 | 1 | 0x00 | 填料 |
0x18 | 2N | Unicode | 属性名称 |
2N+0x18 | L | 属性 (c) |
(a) 常驻属性不能压缩
(b) 每个属性有唯一的标识符
(c) 上舍入成4字节的倍数
偏移量 | 大小 | 值 | 描述 |
---|---|---|---|
0x00 | 4 | 属性类型 (如 0x20, 0x80) | |
0x04 | 4 | 长度 (包括此标题) | |
0x08 | 1 | 0x01 | 非常驻标记 |
0x09 | 1 | 0x00 | 名称长度 |
0x0A | 2 | 0x00 | 到名称的偏移量 |
0x0C | 2 | 标记 | |
0x0E | 2 | 属性标识符 (a) | |
0x10 | 8 | 起始VCN | |
0x18 | 8 | 最后的VCN | |
0x20 | 2 | 0x40 | 到数据运转的偏移量 |
0x22 | 2 | 压缩单位大小(b) | |
0x24 | 4 | 0x00 | 填料 |
0x28 | 8 | 属性的分配大小 (c) | |
0x30 | 8 | 属性的实际大小 | |
0x38 | 8 | 流的初始数据大小 (d) | |
0x40 | ... | 数据运转 |
(a) 每个属性有唯一的标识符
(b) 压缩单位大小 = 2x 簇。0表示未压缩
(c) 属性大小上舍入到簇的大小
(d) 什么时候它不等于分配大小?
偏移量 | 大小 | 值 | 描述 |
---|---|---|---|
0x00 | 4 | 属性类型 (如 0x80, 0xA0) | |
0x04 | 4 | 长度 (包括此标题) | |
0x08 | 1 | 0x01 | 非常驻标记 |
0x09 | 1 | N | 名称长度 |
0x0A | 2 | 0x40 | 到名称的偏移量 |
0x0C | 2 | 标记 | |
0x0E | 2 | 属性标识符 (a) | |
0x10 | 8 | 起始VCN | |
0x18 | 8 | 最后的VCN | |
0x20 | 2 | 2N+0x40 | 到数据运转的偏移量(b) |
0x22 | 2 | 压缩单位大小(c) | |
0x24 | 4 | 0x00 | 填料 |
0x28 | 8 | 属性的分配大小 (d) | |
0x30 | 8 | 属性的实际大小 | |
0x38 | 8 | 流的初始数据大小 (e) | |
0x40 | 2N | Unicode | 属性名称 |
2N+0x40 | ... | 数据运转 (b) |
(a) 每个属性有唯一的标识符
(b) 上舍入到4字节的倍数
(c) 压缩单位大小 = 2x 簇。0表示未压缩
(d) 属性大小上舍入到簇的大小
(e) 什么时候它不等于分配大小?
标记 | 描述 |
---|---|
0x0001 | 压缩 |
0x4000 | 加密 |
0x8000 | 稀少 |
只有数据属性是非常驻时才能被压缩或者稀少。
尽管压缩标记存储在标题里,但不影响标题的大小。
名称不能以零终止
FIXME 0x40 __s64 compressed_size; 压缩后的属性值的字节数。 只有被压缩后才存在,总是簇的倍数大小。 表示磁盘上在用的实际磁盘空间数量。
FIXME: 编入索引的标记只在常驻属性里出现,这是不是意味着你只能索引常驻属性?