1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<!-- http://linux-ntfs.sourceforge.net/ntfs/concepts/index_record.html -->
6
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
7
<meta name="description" content="NTFS Documentation">
8
<link rel="stylesheet" type="text/css" href="../style/ntfsdoc.css">
9
<link rel="start" type="text/html" href="../index.html" title="NTFS Documentation">
10
<title>Index Record - Concept - NTFS Documentation</title>
14
<table border="0" class="toolbar" summary="" cellspacing="0">
16
<td class="toolbar"><a accesskey="1" class="toolbar" href="../index.html">Home</a></td>
17
<td class="toolbar"> </td>
18
<td class="toolbar"><a accesskey="2" class="toolbar" href="../files/index.html">Files</a></td>
19
<td class="toolbar"> </td>
20
<td class="toolbar"><a accesskey="3" class="toolbar" href="../attributes/index.html">Attributes</a></td>
21
<td class="toolbar"> </td>
22
<td class="toolbar"><a accesskey="4" class="toolbar" href="../concepts/index.html">Concepts</a></td>
23
<td class="toolbar"> </td>
24
<td class="toolbar"><a accesskey="5" class="toolbar" href="../help/glossary.html">Glossary</a></td>
25
<td class="toolbar"> </td>
26
<td class="toolbar"><a accesskey="6" class="toolbar" href="../help/index.html">Help</a></td>
30
<h1>Concept - Index Record</h1>
31
<a class="prevnext" accesskey="," href="index_header.html">Previous</a>
32
<a class="prevnext" accesskey="." href="links.html">Next</a>
36
<pre>This is only applicable to a file index ($I30)</pre>
39
indx help describe as "index = key + data"
41
given an INDX record, it's difficult to work out what's
42
being indexed (that info is in the index root)
47
This is a sub-node of the B+ tree that implements an index (e.g. a directory). It is
48
stored in the stream of the index allocation attribute associated to the index it
54
An INDX buffer is at least 2 KB large or the cluster size if larger (this seems to be
55
a per-index parameter). It falls into 2 parts:
58
<h3>The header part</h3>
60
this ISN'T just the header...
62
<table border="1" summary="" cellspacing="0">
64
<th class="numeric">Offset</th>
65
<th class="numeric">Size</th>
69
<td class="numeric">~</td>
70
<td class="numeric">~</td>
71
<td><a href="../concepts/index_header.html">Standard Index Header</a></td>
74
<td class="numeric">0x00</td>
75
<td class="numeric">8</td>
76
<td>MFT Reference of the file</td>
79
<td class="numeric">0x08</td>
80
<td class="numeric">2</td>
81
<td>Size of this index entry</td>
84
<td class="numeric">0x0A</td>
85
<td class="numeric">2</td>
86
<td>Offset to the filename</td>
89
<td class="numeric">0x0C</td>
90
<td class="numeric">2</td>
94
<td class="numeric">0x0E</td>
95
<td class="numeric">2</td>
96
<td>Padding (align to 8 bytes)</td>
99
<td class="numeric">0x10</td>
100
<td class="numeric">8</td>
101
<td>MFT File Reference of the parent</td>
104
<td class="numeric">0x18</td>
105
<td class="numeric">8</td>
106
<td>File creation time</td>
109
<td class="numeric">0x20</td>
110
<td class="numeric">8</td>
111
<td>Last modification time</td>
114
<td class="numeric">0x28</td>
115
<td class="numeric">8</td>
116
<td>Last modification time for FILE record</td>
119
<td class="numeric">0x30</td>
120
<td class="numeric">8</td>
121
<td>Last access time</td>
124
<td class="numeric">0x38</td>
125
<td class="numeric">8</td>
126
<td>Allocated size of file</td>
129
<td class="numeric">0x40</td>
130
<td class="numeric">8</td>
131
<td>Real size of file</td>
134
<td class="numeric">0x48</td>
135
<td class="numeric">8</td>
139
<td class="numeric">0x50</td>
140
<td class="numeric">1</td>
141
<td>Length of filename (F)</td>
144
<td class="numeric">0x51</td>
145
<td class="numeric">1</td>
146
<td><a href="filename_namespace.html">Filename namespace</a></td>
149
<td class="numeric">0x52</td>
150
<td class="numeric">2F</td>
154
<td class="numeric">2F+0x52</td>
155
<td class="numeric">P</td>
156
<td>Padding (align to 8 bytes)</td>
159
<td class="numeric">P+2F+0x52</td>
160
<td class="numeric">8</td>
161
<td>VCN of index buffer with sub-nodes</td>
166
N.B. the filename is not null terminated
167
surely the flags can't be 8 bytes long
169
VCN of ib only exists when flags&1
170
last entry has a size of 0x10 (just large enough
171
for the flags (and a mft ref of zero))
174
<h3>The sequence of index entries part</h3>
176
This is a sequence of index entries similar to the one found in the index root
180
The index entry has the following structure:
183
Index entry flags (16-bit).
185
INDEX_ENTRY_NODE = cpu_to_le16(1), This entry contains a sub-node,
186
i.e. a reference to an index
187
block in form of a virtual
188
cluster number (see below).
189
INDEX_ENTRY_END = cpu_to_le16(2), This signifies the last entry in
190
an index block. The index entry
191
does not represent a file but it
192
can point to a sub-node.
194
This is an index entry. A sequence of such entries follows each INDEX_HEADER
195
structure. Together they make up a complete index. The index follows either
196
an index root attribute or an index allocation attribute.
198
NOTE: Before NTFS 3.0 only filename attributes were indexed.
202
Most entries are not valid (and present) if the entry is the last one. This entry
203
does not represent a file and is used only for subnodes. The pointer to the subnode
204
buffer is only present if the entry has subnodes.
208
<a class="contact" href="http://linux-ntfs.sourceforge.net/ntfs/concepts/index_record.html">Online</a>
209
<!-- The two validators will only work if this page is visible on the web -->
210
<a class="contact" href="http://validator.w3.org/check/referer">Validate HTML</a>
211
<a class="contact" href="http://jigsaw.w3.org/css-validator/check/referer">Validate CSS</a>
212
<a class="contact" href="mailto:webmaster@flatcap.org">$Id: index_record.html,v 1.13 2001/07/11 17:09:23 flatcap Exp $</a>