http://linux-ntfs.sourceforge.net/snapshots/ntfsprogs-200307311516.tar.bz2
[ntfsprogs.git] / doc / attribute_definitions
1 /* All values are as in Windows NT4 SP6a. */
2
3 __u16 name[64]          = "$STANDARD_INFORMATION"
4 __u32 type              = 0x10
5 __u32 unknown[2]        = 0, 0
6 __u32 flags             = 0x40
7 __u64 min_size          = 0x30
8 __u64 max_size          = 0x30, in Win2k: 0x48
9
10 __u16 name[64]          = "$ATTRIBUTE_LIST"
11 __u32 type              = 0x20
12 __u32 unknown[2]        = 0, 0
13 __u32 flags             = 0x80
14 __u64 min_size          = 0
15 __u64 max_size          = -1
16
17 __u16 name[64]          = "$FILE_NAME"
18 __u32 type              = 0x30
19 __u32 unknown[2]        = 0, 0
20 __u32 flags             = 0x42
21 __u64 min_size          = 0x44
22 __u64 max_size          = 0x242
23
24 /* The $volume_version attribute has never been observed in the field. It
25  * probably never was used and was hence replaced by the $object_id in
26  * Windows 2000. */
27 __u16 name[64]          = "$VOLUME_VERSION" in Win2k: "$OBJECT_ID"
28 __u32 type              = 0x40
29 __u32 unknown[2]        = 0, 0
30 __u32 flags             = 0x40
31 __u64 min_size          = 0x8 in Win2k: 0
32 __u64 max_size          = 0x8 in Win2k: 0x100
33
34 __u16 name[64]          = "$SECURITY_DESCRIPTOR"
35 __u32 type              = 0x50
36 __u32 unknown[2]        = 0, 0
37 __u32 flags             = 0x80
38 __u64 min_size          = 0
39 __u64 max_size          = -1
40
41 __u16 name[64]          = "$VOLUME_NAME"
42 __u32 type              = 0x60
43 __u32 unknown[2]        = 0,0
44 __u32 flags             = 0x40
45 __u64 min_size          = 0x2
46 __u64 max_size          = 0x100
47
48 __u16 name[64]          = "$VOLUME_INFORMATION"
49 __u32 type              = 0x70
50 __u32 unknown[2]        = 0, 0
51 __u32 flags             = 0x40
52 __u64 min_size          = 0xc
53 __u64 max_size          = 0xc
54
55 __u16 name[64]          = "$DATA"
56 __u32 type              = 0x80
57 __u32 unknown[2]        = 0, 0
58 __u32 flags             = 0
59 __u64 min_size          = 0
60 __u64 max_size          = -1
61
62 __u16 name[64]          = "$INDEX_ROOT"
63 __u32 type              = 0x90
64 __u32 unknown[2]        = 0, 0
65 __u32 flags             = 0x40
66 __u64 min_size          = 0
67 __u64 max_size          = -1
68
69 __u16 name[64]          = "$INDEX_ALLOCATION"
70 __u32 type              = 0xa0
71 __u32 unknown[2]        = 0,0
72 __u32 flags             = 0x80
73 __u64 min_size          = 0
74 __u64 max_size          = -1
75
76 __u16 name[64]          = "$BITMAP"
77 __u32 type              = 0xb0
78 __u32 unknown[2]        = 0, 0
79 __u32 flags             = 0x80
80 __u64 min_size          = 0
81 __u64 max_size          = -1
82
83 /* The $symbolic_link attribute has never been observed in the field. It
84  * probably never was used and was hence replaced by the $reparse_point in
85  * Windows 2000. */
86 __u16 name[64]          = "$SYMBOLIC_LINK" in Win2k: "$REPARSE_POINT"
87 __u32 type              = 0xc0
88 __u32 unknown[2]        = 0, 0
89 __u32 flags             = 0x80
90 __u64 min_size          = 0
91 __u64 max_size          = -1 in Win2k: 0x4000
92
93 __u16 name[64]          = "$EA_INFORMATION"
94 __u32 type              = 0xd0
95 __u32 unknown[2]        = 0, 0
96 __u32 flags             = 0x40
97 __u64 min_size          = 0x8
98 __u64 max_size          = 0x8
99
100 __u16 name[64]          = "$EA"
101 __u32 type              = 0xe0
102 __u32 unknown[2]        = 0, 0
103 __u32 flags             = 0
104 __u64 min_size          = 0
105 __u64 max_size          = 0x10000
106
107 /*
108  * Sequence terminates here with a record all of whose fields are zero, even
109  * though the size of the $AttrDef data attribute is much larger (36000 bytes,
110  * i.e. in theory 225 attribute definitions of 160 bytes each but in practice
111  * only until we reach an all zero record).
112  * 
113  * The following only applies to Windows 2000 and replaces the above comment.
114  */
115
116 __u16 name[64]          = "$LOGGED_UTILITY_STREAM"
117 __u32 type              = 0x100
118 __u32 unknown[2]        = 0, 0
119 __u32 flags             = 0x80
120 __u64 min_size          = 0
121 __u64 max_size          = 0x10000
122
123 /*
124  * This is terminated by a single record all of whose fields are zero. This
125  * also finishes the $AttrDef data attribute. I.e. the attribute size is the
126  * correct size of the sequence of attribute definitions (2560 bytes, i.e.
127  * 16 attribute definitions of 160 bytes each).
128  */
129