主页 | 文件 | 属性 | 概念 | 词汇

# 属性 - $INDEX_ROOT (0x90)

前一页 后一页

## 概述

这是B＋子目录结构的根节点，它执行一个索引（如一个目录）。 此文件属性总是常驻的。

## 属性结构

        链接如下

$INDEX_ROOT
  标准属性标题
  索引根部
  索引标题
  索引项
  索引项
  ...

### 索引根部

偏移量 | 大小 | 描述
--- | --- | ---
~ | ~ | 标准属性标题
0x00 | 4 | 属性类型
0x04 | 4 | 整理规则
0x08 | 4 | 索引分配项的大小 (字节)
0x0C | 1 | 每个索引记录的簇
0x0D | 3 | 填料 (排列成8字节)

### 索引标题

偏移量 | 大小 | 描述
--- | --- | ---
0x00 | 4 | 到第一个索引项的偏移量
0x04 | 4 | 全体索引项的大小
0x08 | 4 | 索引项的分配大小
0x0C | 1 | 标记
0x0D | 3 | 填料 (排列成8字节)

## 注意

### 大小

就像在 $AttrDef里定义的， 此属性大小无上下限

### 标记

标记 | 描述
--- | ---
0x00 | 小索引 (装配在索引根部)
0x01 | 大索引(需要索引分配)

        有一个0x00的标记是不明智的。

大索引标记表明是否存在文件属性索引分配和位图（当索引足够小到可以完全存储在根节点里时，这两个文件属性不存在）。

### 索引项序列

索引项的序列有不同的长度。序列用一个特殊的索引项终止，此索引项的最后一项标记被设置。

        这是索引的标题，描述索引项记录跟在索引标题后面。索引标题和索引项一起组成了一个完整的索引。

        索引标题描述后面跟的是一个索引项（索引项结构）的序列。

        当一个目录足够小到能够装进索引根部时这是描述此目录的唯一一个属性。当目录太大不能装进索引根
        部时，存在两个附加属性：一个索引分配属性，包含B+目录树状结构的子节点；一个位图属性，描述一
        个索引模块在索引分配属性里使用的实际簇数（VCNS）。

        注意：根目录(FILE_$root)包含一个自身项。

        struct {
                ATTR_TYPES type;
                索引属性类型。是目录的$FILENAME ，浏览索引为零。没有其它许可值。

                COLLATION_RULES collation_rule;     用于分类索引项的分配规则。如果类型是$FILENAME，
                它必须是COLLATION_FILENAME.

                __u32 bytes_per_index_block;
                每个索引模块的字节数 (在索引分配属性里).

                __u8 clusters_per_index_block;
               每个索引每个的簇大小 (在索引分配属性里), 当一个索引模块大于等于一个簇时，否则这就是日
               志的大小 (象MFT记录大小如何编码和索引记录大小如何在引导区工作)。必须是2的指数。

        }  INDEX_ROOT;

### 公共索引列表

Name | Index Of | Used By
--- | --- | ---
$I30 | 文件名 | 目录
$SDH | 安全描述符 | $Secure
$SII | 安全标识符 | $Secure
$O | 对象标识符 | $ObjId
$O | 所有者标识符 | $Quota
$Q | 限额 | $Quota
$R | 修复点 | $Reparse

        哪个要素在索引之间共享？
        不要联系到根索引。

Online 中文在线 Validate HTML Validate CSS $Id: index_root.html,v 1.11 2001/07/24 13:47:12 flatcap Exp $