70H类型属性即$VOLUME_INFORMATION,该属性说明卷的版本和状态,只有在元文件$Volum出现,其属性长为12字节(但实际上总是占用了16字节,这是因为属性的长度总是8的倍数),属性结构见表4-61。
表4-61 70H类型属性描述
字节偏移 | 字段长度(字节) | 含义 |
~ | ~ | 标准属性头(已分析过) |
0x00 | 8 | 总为0 |
0x08 | 1 | 主版本号 |
0x09 | 1 | 次版本号 |
0x0A | 2 | 标志 |
0x0C | 4 | 总为0 |
几点说明如下。
70H属性标志的含义
70H属性的标志含义见表4-62。
表4-62 70H属性标志描述
值 | 描述 |
0x0001 | 坏区标志 |
0x0002 | 调整日志文件大小 |
0x0004 | 更新装载 |
0x0008 | 装载到NT4 |
0x0010 | 删除进行中的USN |
0x0020 | 修复对象ID |
0x8000 | 用chkdsk修正 |
坏区标志为1时,Windows NT、Windows 2000、Windows XP就必须在下次重启时运行chkdsk/F命令对卷进行修复。在这些系统中可以用fsutil命令对该位进行操作坏区设置和查询等操作,其语法为:
fsutil dirty {query|set} PathName
其中,参数query表示查询指定卷是否为坏区,参数set表示将卷设置为坏区,参数PathName则指定驱动器号(用冒号分隔)、装入点或卷名。如果设置了卷的坏区,则表明文件系统可能处于不一致的状态。
由于下述原因可以设置坏区:卷已联机且发生了明显的变化,或对卷作了更改,但在更改写入到磁盘前关闭了计算机,或者因为在卷上检测到损坏。如果重新启动计算机时设置了坏区,则运行chkdsk可以验证卷的一致性。每次启动系统时,内核程序将调用Autochk.exe扫描所有的卷,以查看是否设置了卷的坏区。如果设置了坏区,则autochk将立即在卷上执行chkdsk/f。chkdsk/f将验证文件系统的完整性并试图修复卷上的任何故障。
70H属性的版本号
70H属性的版本号含义见表4-63。
表4-63 70H属性版本号描述
操作系统 | NTFS版本(主.次) |
Windows NT | 1.2 |
Windows 2000 | 3.0 |
Windows XP | 3.1 |
Windows 2003 | 3.1 |
Windows Vista | 3.1 |
70H的例子如图4-422所示。
图4-422 70H的例子