Difference between revisions of "Unit NTFSConst"
| (16 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
----  | ----  | ||
| − | '''Ultibo NTFS   | + | '''Ultibo NTFS Constants unit'''  | 
| − | + | ||
| − | + | ||
=== Constants ===  | === Constants ===  | ||
----  | ----  | ||
| − | ''  | + | |
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS specific constants''' <code> ntfs* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsNTFS12 = 0;</code>  | ||
| + | | 4.0 (WinNT)  | ||
| + | |-  | ||
| + | | <code>ntfsNTFS30 = 1;</code>  | ||
| + | | 5.0 (Win2000)  | ||
| + | |-  | ||
| + | | <code>ntfsNTFS31 = 2;</code>  | ||
| + | | 5.1/5.2/6.0/6.1 (WinXP/Win2003/WinVista/Win2008/Win7)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsAnyName = '*';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDotName = '.';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDotDotName = '..';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsAnyNameLength = 1;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDotNameLength = 1;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDotDotNameLength = 2;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsBlankNameLength = 0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsOemName = 'NTFS';</code>  | ||
| + | | Padded with spaces to 8 bytes  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsEntryPadding = $20;</code>  | ||
| + | | Padded with spaces (32)  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS security''' <code> ntfsSecurity* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityHashPadding = $00490049;</code>  | ||
| + | | Unicode string II  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityHashPaddingSize = 4;</code>  | ||
| + | | SizeOf(LongWord)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsSecurityMirrorOffset = $00040000;</code>  | ||
| + | | 256K Offset between primary and mirror entries  | ||
| + | |-  | ||
| + | | <code>ntfsSecuritySectionOffset = $00040000;</code>  | ||
| + | | 256K Offset between sections (End of one section to Start of next)  | ||
| + | |-  | ||
| + | | <code>ntfsSecuritySectionShift = 18;</code>  | ||
| + | | Not Used  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityOffsetMask = $0003FFFF;</code>  | ||
| + | | Used to determine the offset within a section from the offset  | ||
| + | |-  | ||
| + | | <code>ntfsSecuritySectionMask = $FFFC0000;</code>  | ||
| + | | Used to determine the start of a section from the offset  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityMirrorTest = $00040000;</code>  | ||
| + | | Mirror blocks will always be 40000 or C0000  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS max number''' <code> ntfsMax* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsMaxPath = 260;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMaxFile = 255;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsMaxAlias = 999999;</code>  | ||
| + | | Max number of lfn aliases (ie ~999999)  | ||
| + | |-  | ||
| + | | <code>ntfsMaxNameAlias = 4;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMaxHashAlias = 999;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMaxHashShift = 16;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsMaxVolumeName = 255;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMaxAttributeName = 255;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS cluster size''' <code> ntfs*ClusterSize* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsMinClusterSize = 512;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfs12MaxClusterSize = 4096;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfs30MaxClusterSize = 65536;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS sector''' <code> ntfs*Sector </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsBootSector = 0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsStartSector = 0;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | | <code>ntfsUnknownSector = -1;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS cluster''' <code> ntfs*Cluster </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsStartCluster = 0;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | | <code>ntfsUnevenCluster = 1;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | | <code>ntfsUnknownCluster = -1;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS status''' <code> ntfsStatus* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsStatusNone = $00000000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsStatusAdded = $00000001;</code>  | ||
| + | | Used by Node  | ||
| + | |-  | ||
| + | | <code>ntfsStatusDeleted = $00000002;</code>  | ||
| + | | Used by Node  | ||
| + | |-  | ||
| + | | <code>ntfsStatusChanged = $00000004;</code>  | ||
| + | | Used by Key, Node, Index  | ||
| + | |-  | ||
| + | | <code>ntfsStatusLoaded = $00000008;</code>  | ||
| + | | Used by Index, List  | ||
| + | |-  | ||
| + | | <code>ntfsStatusInvalid = $00000010;</code>  | ||
| + | | Used by Key, Item  | ||
| + | |-  | ||
| + | | <code>ntfsStatusResizing = $00000020;</code>  | ||
| + | | Used by Record  | ||
| + | |-  | ||
| + | | <code>ntfsStatusRemoving = $00000040;</code>  | ||
| + | | Used by Record  | ||
| + | |-  | ||
| + | | <code>ntfsStatusUpdating = $00000080;</code>  | ||
| + | | Used by Attribute  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsStatusMirrored = $00000100;</code>  | ||
| + | | Metafile Records (0 to 3)  | ||
| + | |-  | ||
| + | | <code>ntfsStatusMetafile = $00000200;</code>  | ||
| + | | Metafile Records (0 to 11)  | ||
| + | |-  | ||
| + | | <code>ntfsStatusReserved = $00000400;</code>  | ||
| + | | Reserved MFT Records (12 to 15)(0C to 0F)  | ||
| + | |-  | ||
| + | | <code>ntfsStatusExpansion = $00000800;</code>  | ||
| + | | Expansion MFT Records (16 to 23)(10 to 17)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsStatusOverflow = $00001000;</code>  | ||
| + | | Record has an attribute list attribute  | ||
| + | |-  | ||
| + | | <code>ntfsStatusExtension = $00002000;</code>  | ||
| + | | Record is an extension of the base record  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsStatusFixed = $00004000;</code>  | ||
| + | | Attribute is a fixed size (can write single item) Not used due to Fixups  | ||
| + | |-  | ||
| + | | <code>ntfsStatusSingle = $00008000;</code>  | ||
| + | | Attribute only allows a single instance (Standard Information, Attribute List, End etc)  | ||
| + | |-  | ||
| + | | <code>ntfsStatusUnlisted = $00010000;</code>  | ||
| + | | Attribute is not listed in an Attribute List (Attribute List, End)  | ||
| + | |-  | ||
| + | | <code>ntfsStatusUnmovable = $00020000;</code>  | ||
| + | | Attribute cannot be moved from the Base Record (Standard Information, Attribute List)  | ||
| + | |-  | ||
| + | | <code>ntfsStatusManaged = $00040000;</code>  | ||
| + | | Attribute is handled as a record or list, data member is not valid (Standard Information, Attribute List, FileName etc)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsStatusAny = $FFFFFFFF;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS compare''' <code> ntfsCompare* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsCompareLess = -1;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsCompareEqual = 0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsCompareGreater = 1;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS instance''' <code> ntfsInstance* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsInstanceFirst = 0;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsInstanceLast = -1;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS attribute definition''' <code> ntfsAttrDefNo* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsAttrDefNoMinimum = 0;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | | <code>ntfsAttrDefNoMaximum = -1;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS file reference''' <code> ntfsFileReference* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsFileReferenceNone = 0;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | | <code>ntfsRecordNumberMask = $0000FFFFFFFFFFFF;</code>  | ||
| + | | Get a record number from a file reference  | ||
| + | |-  | ||
| + | | <code>ntfsUnknownRecordNumber = -1;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS bitmap''' <code> ntfsBitmap* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsBitmapUnknown = LongWord(-1);</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS block count mask''' <code> ntfsBlockCountMask* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsBlockCountMask8 = $FFFFFFFFFFFFFFF8;</code>  | ||
| + | | 0000000000000007  | ||
| + | |-  | ||
| + | | <code>ntfsBlockCountMask64 = $FFFFFFFFFFFFFFC0;</code>  | ||
| + | | 000000000000003F  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS MFT zone''' <code> ntfsMftZone* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem - NtfsMftZoneReservation - DWORD  | ||
| + | |-  | ||
| + | |colspan="2"|    | ||
| + | |-  | ||
| + | | <code>ntfsMftZone50percent = 500;</code>  | ||
| + | | Registry value 4  | ||
| + | |-  | ||
| + | | <code>ntfsMftZone37percent = 375;</code>  | ||
| + | | Registry value 3  | ||
| + | |-  | ||
| + | | <code>ntfsMftZone25percent = 250;</code>  | ||
| + | | Registry value 2  | ||
| + | |-  | ||
| + | | <code>ntfsMftZone12percent = 125;</code>  | ||
| + | | Registry value 1 (Default)  | ||
| + | |-  | ||
| + | | <code>ntfsMftZone0percent = 0;</code>  | ||
| + | | Registry value 0 (Not allowed)  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS MFT fixed zone''' <code> ntfsMftFixedZone* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Vista/2008  | ||
| + | |-  | ||
| + | |colspan="2"|    | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone1000MB = 1000;</code>  | ||
| + | | Registry value 0 (Not allowed)  | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone800MB = 800;</code>  | ||
| + | | Registry value 4  | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone600MB = 600;</code>  | ||
| + | | Registry value 3  | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone400MB = 400;</code>  | ||
| + | | Registry value 2  | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone200MB = 200;</code>  | ||
| + | | Registry value 1 (Default)  | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone0MB = 0;</code>  | ||
| + | | Registry value 0 (Not allowed)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone1000MBSize = 1048576000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone800MBSize = 838860800;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone600MBSize = 629145600;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone400MBSize = 419430400;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone200MBSize = 209715200;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMftFixedZone0MBSize = 0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS run offset mask''' <code> ntfsRunOffsetMask* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsRunOffsetMask = $F0;</code>  | ||
| + | | shr 4  | ||
| + | |-  | ||
| + | | <code>ntfsRunLengthMask = $0F;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS run encode mask''' <code> ntfsRunEncodeMask* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|(and)  | ||
| + | |-  | ||
| + | |colspan="2"|    | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunEncodeMasks:array[0..8] of Int64 = (</code>  | ||
| + | |-  | ||
| + | | <code>$0000000000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$00000000000000FF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$000000000000FFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$0000000000FFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$00000000FFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$000000FFFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$0000FFFFFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$00FFFFFFFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFFFFFFFF);</code>  | ||
| + | | Not Used  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS run encode test''' <code> ntfsRunEncodeTest* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|(and)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>(*ntfsRunEncodeTests:array[0..8] of Int64 = (</code>  | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFFFFFFFF,</code>  | ||
| + | | Not Used  | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFFFFFF00,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFFFF0000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFF000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFF00000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFF0000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFF000000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FF00000000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$0000000000000000);*)</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunEncodeTests:array[0..8] of Int64 = (</code>  | ||
| + | |-  | ||
| + | | <code>$0000000000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$000000000000007F,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$0000000000007FFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$00000000007FFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$000000007FFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$0000007FFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$00007FFFFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$007FFFFFFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$7FFFFFFFFFFFFFFF);</code>  | ||
| + | | Not Used  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS run negative test''' <code> ntfsRunNegativeTest* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunNegativeTests:array[0..8] of Int64 = (</code>  | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFFFFFFFF,</code>  | ||
| + | | Not Used  | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFFFFFF80,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFFFF8000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFF800000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFF80000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFF8000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFF800000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FF80000000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$8000000000000000);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS run decode mask''' <code> ntfsRunDecode*Mask </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|(and) (or not)  | ||
| + | |-  | ||
| + | |colspan="2"|    | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunDecode1Masks:array[1..1] of Byte = (</code>  | ||
| + | |-  | ||
| + | | <code>$FF);</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunDecode2Masks:array[2..2] of Word = (</code>  | ||
| + | |-  | ||
| + | | <code>$FFFF);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunDecode4Masks:array[3..4] of LongWord = (</code>  | ||
| + | |-  | ||
| + | | <code>$00FFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFF);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunDecode8Masks:array[5..8] of Int64 = (</code>  | ||
| + | |-  | ||
| + | | <code>$000000FFFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$0000FFFFFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$00FFFFFFFFFFFFFF,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$FFFFFFFFFFFFFFFF);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS run decode test''' <code> ntfsRunDecode*Test </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|(>=)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunDecode1Tests:array[1..1] of Byte = (</code>  | ||
| + | |-  | ||
| + | | <code>$80);</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunDecode2Tests:array[2..2] of Word = (</code>  | ||
| + | |-  | ||
| + | | <code>$8000);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunDecode4Tests:array[3..4] of LongWord = (</code>  | ||
| + | |-  | ||
| + | | <code>$00800000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$80000000);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsRunDecode8Tests:array[5..8] of Int64 = (</code>  | ||
| + | |-  | ||
| + | | <code>$0000008000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$0000800000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$0080000000000000,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$8000000000000000);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS compression tag''' <code> ntfsCompression* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsCompressionTags:array[1..8] of Byte = (</code>  | ||
| + | |-  | ||
| + | | <code>$01,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$02,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$04,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$08,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$10,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$20,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$40,</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>$80);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsCompressionTagMask = $0FFF;</code>  | ||
| + | | The default mask for encoding and decoding the offset and length of a tag  | ||
| + | |-  | ||
| + | | <code>ntfsCompressionTagShift = 12;</code>  | ||
| + | | The default shift for encoding and decoding the offset and length of a tag.  | ||
| + | Tag is encoded as Offset:Length by varying the mask and shift based on the position.  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsCompressionUnitSize = 4;</code>  | ||
| + | | The default shift count for compression unit to cluster conversion  | ||
| + | |-  | ||
| + | | <code>ntfsCompressionBlockSize = 4096;</code>  | ||
| + | | The fixed size of a compression block inside the variable compression unit  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsCompressionLengthMask = $0FFF;</code>  | ||
| + | | The mask for the maximum length of a compressed block  | ||
| + | |-  | ||
| + | | <code>ntfsCompressionMarkerMask = $B000;</code>  | ||
| + | | The mask for the marker of a compressed block  | ||
| + | |-  | ||
| + | | <code>ntfsCompressionMarkerTest = $8000;</code>  | ||
| + | | The test for the marker of a compressed block  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsCompressionTableInit = $FF;</code>  | ||
| + | | The initialization value for the compression table  | ||
| + | |-  | ||
| + | | <code>ntfsCompressionTableUnused = $FFFF;</code>  | ||
| + | | The unused or unseen value for the compression table  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS bitmap mask''' <code> ntfsBitmapMask* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsBitmapMaskBits = 64;</code>  | ||
| + | | Int64 Bitmap Masks  | ||
| + | |-  | ||
| + | | <code>ntfsBitmapMaskNone = $0000000000000000;</code>  | ||
| + | | Int64 (Used for fast counting of free blocks)  | ||
| + | |-  | ||
| + | | <code>ntfsBitmapMaskAll = $FFFFFFFFFFFFFFFF;</code>  | ||
| + | | Int64 (Used for fast counting of used blocks)  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS signature''' <code> ntfs*Signature </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsFileSignature = $454C4946;</code>  | ||
| + | | FILE  | ||
| + | |-  | ||
| + | | <code>ntfsIndexSignature = $58444E49;</code>  | ||
| + | | INDX  | ||
| + | |-  | ||
| + | | <code>ntfsRecordSignature = $44524352;</code>  | ||
| + | | RCRD  | ||
| + | |-  | ||
| + | | <code>ntfsRestartSignature = $52545352;</code>  | ||
| + | | RSTR  | ||
| + | |-  | ||
| + | | <code>ntfsCheckedSignature = $00000000;</code>  | ||
| + | | CHKD  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsNullGUID:TGUID = (D1:$00000000;D2:$0000;D3:$0000;D4:($00,$00,$00,$00,$00,$00,$00,$00));</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsNullFileTime:TFileTime = (dwLowDateTime:$00000000;dwHighDateTime:$00000000);</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS table type''' <code> ntfsTableType* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsTableTypeMft = $00000000;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsTableTypeMftMirr = $00000001;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS file type''' <code> ntfsFileType* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeMft = $00000000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeMftMirr = $00000001;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeLogFile = $00000002;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeVolume = $00000003;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeAttrDef = $00000004;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeRoot = $00000005;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeBitmap = $00000006;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeBoot = $00000007;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeBadClus = $00000008;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeSecure = $00000009;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfs12FileTypeQuota = $00000009;</code>  | ||
| + | | Version 1.2 only  | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeUpCase = $0000000A;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExtend = $0000000B;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeObjId = $10000000;</code>  | ||
| + | | Any record number  | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeQuota = $20000000;</code>  | ||
| + | | Any record number  | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeReparse = $30000000;</code>  | ||
| + | | Any record number  | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeUsnJrnl = $40000000;</code>  | ||
| + | | Any record number  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeFile = $50000000;</code>  | ||
| + | | Any record number (Not Used)  | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeDirectory = $60000000;</code>  | ||
| + | | Any record number (Not Used)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeReserved1 = $0000000C;</code>  | ||
| + | | Reserved Records  | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeReserved2 = $0000000D;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeReserved3 = $0000000E;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeReserved4 = $0000000F;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExpansion1 = $00000010;</code>  | ||
| + | | Expansion Records  | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExpansion2 = $00000011;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExpansion3 = $00000012;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExpansion4 = $00000013;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExpansion5 = $00000014;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExpansion6 = $00000015;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExpansion7 = $00000016;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileTypeExpansion8 = $00000017;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS record number''' <code> ntfs*RecordNumber </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsQuotaRecordNumber = $00000018;</code>  | ||
| + | | Only used during Format  | ||
| + | |-  | ||
| + | | <code>ntfsObjIdRecordNumber = $00000019;</code>  | ||
| + | | Only used during Format  | ||
| + | |-  | ||
| + | | <code>ntfsReparseRecordNumber = $0000001A;</code>  | ||
| + | | Only used during Format  | ||
| + | |-  | ||
| + | | <code>ntfsUsnJrnlRecordNumber = $0000001B;</code>  | ||
| + | | Not Used  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsDefaultRecordCount = $0000001B;</code>  | ||
| + | | Files up to $Reparse  | ||
| + | |-  | ||
| + | | <code>ntfsDefaultMirrorCount = $00000004;</code>  | ||
| + | | Files up to $Volume  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS file reference''' <code> ntfs*FileReference </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsRootFileReference = $0005000000000005;</code>  | ||
| + | | Only used during Format  | ||
| + | |-  | ||
| + | | <code>ntfsExtendFileReference = $000B00000000000B;</code>  | ||
| + | | Only used during Format  | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFileReference = $0003000000000003;</code>  | ||
| + | | Only used during Format  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS file name''' <code> ntfsFileName* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsFileNameMft = '$MFT';</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsFileNameMftMirr = '$MFTMirr';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameLogFile = '$LogFile';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameVolume = '$Volume';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameAttrDef = '$AttrDef';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameRoot = '.';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameBitmap = '$Bitmap';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameBoot = '$Boot';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameBadClus = '$BadClus';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameSecure = '$Secure';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameUpCase = '$UpCase';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameExtend = '$Extend';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsFileNameObjId = '$ObjId';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameQuota = '$Quota';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameReparse = '$Reparse';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileNameUsnJrnl = '$UsnJrnl';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS attribute type''' <code> ntfsAttrType* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeNone = $00000000;</code>  | ||
| + | | Marker only  | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeStandardInformation = $00000010;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeAttributeList = $00000020;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeFileName = $00000030;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeObjectId = $00000040;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeVolumeVersion = $00000040;</code>  | ||
| + | | Version 1.2 only  | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeSecurityDescriptor = $00000050;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeVolumeName = $00000060;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeVolumeInformation = $00000070;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeData = $00000080;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeIndexRoot = $00000090;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeIndexAllocation = $000000A0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeBitmap = $000000B0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeReparsePoint = $000000C0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeSymbolicLink = $000000C0;</code>  | ||
| + | | Version 1.2 only  | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeExtendedAttrInformation = $000000D0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeExtendedAttr = $000000E0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypePropertySet = $000000F0;</code>  | ||
| + | | Version 3.0 only  | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeLoggedUtilityStream = $00000100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeEnd = $FFFFFFFF;</code>  | ||
| + | | Marker only  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsAttrTypeAny = $00000000;</code>  | ||
| + | | Used to return all attributes  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS attribute name''' <code> ntfsAttrName* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameNone = '$NONE';</code>  | ||
| + | | Marker only  | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameStandardInformation = '$STANDARD_INFORMATION';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameAttributeList = '$ATTRIBUTE_LIST';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameFileName = '$FILE_NAME';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameObjectId = '$OBJECT_ID';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameVolumeVersion = '$VOLUME_VERSION';</code>  | ||
| + | | Version 1.2 only  | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameSecurityDescriptor = '$SECURITY_DESCRIPTOR';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameVolumeName = '$VOLUME_NAME';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameVolumeInformation = '$VOLUME_INFORMATION';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameData = '$DATA';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameIndexRoot = '$INDEX_ROOT';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameIndexAllocation = '$INDEX_ALLOCATION';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameBitmap = '$BITMAP';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameReparsePoint = '$REPARSE_POINT';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameSymbolicLink = '$SYMBOLIC_LINK';</code>  | ||
| + | | Version 1.2 only  | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameExtendedAttrInformation = '$EA_INFORMATION';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameExtendedAttr = '$EA';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNamePropertySet = '$PROPERTY_SET';</code>  | ||
| + | | Version 3.0 only  | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameLoggedUtilityStream = '$LOGGED_UTILITY_STREAM';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrNameEnd = '$END';</code>  | ||
| + | | Marker only  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS owner Id''' <code> ntfsOwnerId* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsOwnerIdNull = $00000001;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsOwnerIdFirst = $00000100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsOwnerIdUnknown = $FFFFFFFF;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS default owner Id''' <code> ntfsDefaultOwnerId* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsDefaultOwnerId1 = $00000001;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsDefaultOwnerId100 = $00000100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS default sid''' <code> ntfsDefaultSid* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsMaxDefaultSid = 1;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsDefaultSidNone = 0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultSid100 = 1;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsDefaultSids:array[1..ntfsMaxDefaultSid] of TNTFSDefaultSid = (</code>  | ||
| + | |-  | ||
| + | | <code>(Sid:WinBuiltinAdministratorsSid));</code>  | ||
| + | | 100  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS security Id''' <code> ntfsSecurityId* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityIdNull = $00000001;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsSecurityIdFirst = $00000100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsSecurityIdUnknown = $FFFFFFFF;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS default security Id''' <code> ntfsDefaultSecurityId* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsDefaultSecurityId100 = $00000100;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsDefaultSecurityId101 = $00000101;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultSecurityId102 = $00000102;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultSecurityId103 = $00000103;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS default descriptor''' <code> ntfsDefaultDescriptor* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsMaxDefaultDescriptor = 7;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptorNone = 0;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptorVolume = 1;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptorAttrDef = 2;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptorRoot = 3;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptor102 = 4;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptor103 = 5;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptorFile = 6;</code>  | ||
| + | | Used by NTFSDefaultSecurity option  | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptorFolder = 7;</code>  | ||
| + | | Used by NTFSDefaultSecurity option  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptorBoot = 2;</code>  | ||
| + | | Same as ntfsDefaultDescriptorAttrDef  | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptor100 = 2;</code>  | ||
| + | | Same as ntfsDefaultDescriptorAttrDef  | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptor101 = 1;</code>  | ||
| + | | Same as ntfsDefaultDescriptorVolume  | ||
| + | |-  | ||
| + | | <code>ntfsDefaultDescriptorReserved = 1;</code>  | ||
| + | | Same as ntfsDefaultDescriptorVolume  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />  | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS security offset''' <code> ntfsSecurityOffset* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityOffsetFirst = 0;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsSecurityOffsetUnknown = -1;</code>  | ||
| + | | Int64  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS index name''' <code> ntfsIndexName* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsIndexNameFileName = '$I30';</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsIndexNameSecurityId = '$SII';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexNameSecurityHash = '$SDH';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexNameObjectId = '$O';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexNameOwnerId = '$O';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexNameQuota = '$Q';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexNameReparse = '$R';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS index order''' <code> ntfsIndexOrder* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsIndexOrderFileName = 38;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsIndexOrderSecurityId = 100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexOrderSecurityHash = 100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexOrderObjectId = 100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexOrderOwnerId  = 100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexOrderQuota = 100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexOrderReparse = 100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS stream name''' <code> ntfsStreamName* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsStreamNameSecurity = '$SDS';</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsStreamNameBadClus = '$Bad';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsStreamNameMountMgr = '$MountMgrDatabase';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsStreamNameJournal = '$J';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsStreamNameJrnlMax = '$Max';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS file namespace''' <code> ntfsNameSpace* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsNameSpacePosix = $00;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsNameSpaceWin32 = $01;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsNameSpaceDos = $02;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsNameSpaceBoth = ntfsNamespaceWin32 or ntfsNamespaceDos;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS display type''' <code> ntfsDisplayType* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsDisplayTypeNone = $00000000;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS collate type''' <code> ntfsCollateType* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsCollateTypeBinary = $00000000;</code>  | ||
| + | | Binary, where the first byte is most significant  | ||
| + | |-  | ||
| + | | <code>ntfsCollateTypeFileName = $00000001;</code>  | ||
| + | | Filename Unicode strings (This is a case insensitive compare)  | ||
| + | |-  | ||
| + | | <code>ntfsCollateTypeUnicode = $00000002;</code>  | ||
| + | |  Unicode strings, except that upper case letters should come first (This is a case sensitive compare)  | ||
| + | |-  | ||
| + | | <code>ntfsCollateTypeLongWord = $00000010;</code>  | ||
| + | | An unsigned long (32 bits, little endian)  | ||
| + | |-  | ||
| + | | <code>ntfsCollateTypeSID = $00000011;</code>  | ||
| + | | A Security Identifier  | ||
| + | |-  | ||
| + | | <code>ntfsCollateTypeSecurityHash = $00000012;</code>  | ||
| + | | First compare by the Security Hash, then by Security Descriptor (Sorting is by Security Hash then Security Id)  | ||
| + | |-  | ||
| + | | <code>ntfsCollateTypeGUID = $00000013;</code>  | ||
| + | | Object GUIDs  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS volume flag''' <code> ntfsVolumeFlag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFlagNone = $0000;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFlagDirty = $0001;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFlagResizeLogFile = $0002;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFlagUpgradeMount = $0004;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFlagMountedNT4 = $0008;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFlagDeleteUSN = $0010;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFlagRepairObjectIds = $0020;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsVolumeFlagModifiedChkdsk = $8000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS file record flag''' <code> ntfsFileRecordFlag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsFileRecordFlagNone = $0000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileRecordFlagInUse = $0001;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileRecordFlagDirectory = $0002;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsFileRecordFlagUnknown1 = $0004;</code>  | ||
| + | | Used by $Quota,$ObjId,$Reparse  | ||
| + | |-  | ||
| + | | <code>ntfsFileRecordFlagIndexView = $0008;</code>  | ||
| + | | Used by $Secure,$Quota,$ObjId,$Reparse  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS attribute flag''' <code> ntfsAttrDefFlag* ntfsAttributeFlag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsAttrDefFlagNone = $00000000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrDefFlagIndexed = $00000002;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttrDefFlagResident = $00000040;</code>  | ||
| + | | Always resident  | ||
| + | |-  | ||
| + | | <code>ntfsAttrDefFlagUncompressed = $00000080;</code>  | ||
| + | | Cannot Compress (Note: Resident Attributes cannot be compressed anyway)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsAttrDefFlagResidentIndex = $00000042;</code>  | ||
| + | | Used by FileName (Resident and Indexed)  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsAttributeFlagNone = $0000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttributeFlagCompressed = $0001;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttributeFlagEncrypted = $4000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttributeFlagSparse = $8000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS attribute''' <code> ntfsAttribute* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsAttributeIndexed = $01;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsAttributeNonIndexed = $00;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttributeResident = $00;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsAttributeNonResident = $01;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS index header flag''' <code> ntfsIndexHeaderFlag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsIndexHeaderFlagNone = $0000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexHeaderFlagSubNodes = $0001;</code>  | ||
| + | | Index has Sub Nodes  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS index entry flag''' <code> ntfsIndexEntryFlag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsIndexEntryFlagNone = $0000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsIndexEntryFlagSubNode = $0001;</code>  | ||
| + | | Entry has Sub Node  | ||
| + | |-  | ||
| + | | <code>ntfsIndexEntryFlagLastNode = $0002;</code>  | ||
| + | | Entry is Last Node (Always the Blank Node)  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS quota flag''' <code> ntfsQuotaFlag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagNone = $0000;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagDefaultLimits = $0001;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagLimitReached = $0002;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagIdDeleted = $0004;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagTrackingEnabled = $0010;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagEnforcementEnabled = $0020;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagTrackingRequested = $0040;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagLogThreshold = $0080;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagLogLimit = $0100;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagOutOfDate = $0200;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagCorrupt = $0400;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsQuotaFlagPendingDeletes = $0800;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS reparse tag''' <code> ntfsReparseTag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagNone = $00000000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagMountPoint = $A0000003;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagHSM = $C0000004;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagNSS = $80000005;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagNSSRecover = $80000006;</code>  | ||
| + | | ntfsReparseTagHSM2  | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagSIS = $80000007;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagDFS = $80000008;</code>  | ||
| + | | Shown in some documentation  | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagDFS = $8000000A;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagFilterManager = $8000000B;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagSymbolicLink = $A000000C;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagDFSR = $80000012;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS reparse tag flag''' <code> ntfsReparseTagFlag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagFlagNone = $00000000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagFlagIsAlias = $20000000;</code>  | ||
| + | | ntfsReparseTagFlagIsNameSurrogate  | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagFlagIsHighLatency = $40000000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagFlagIsMicrosoft = $80000000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS reparse tag type''' <code> ntfsReparseTagType* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeNone = $00000000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeMountPoint = $00000003;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeHSM = $00000004;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeNSS = $00000005;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeNSSRecover = $00000006;</code>  | ||
| + | | ntfsReparseTagHSM2  | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeSIS = $00000007;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeDFS = $00000008;</code>  | ||
| + | | Shown in some documentation  | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeDFS = $0000000A;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeFilterManager = $0000000B;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeSymbolicLink = $0000000C;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsReparseTagTypeDFSR = $00000012;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsReparsePointPrefix = '\??\';</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS extended attribute flag''' <code> ntfsExtendedAttributeFlag* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsExtendedAttributeFlagNone = $00;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>ntfsExtendedAttributeFlagNeedEA = $80;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS default size''' <code> ntfsDefault*Size </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsDefaultBootRecordSize = 8192;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultFileRecordSize = 1024;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsDefaultIndexRecordSize = 4096;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsDefaultSecureSdsSize = 262396;</code>  | ||
| + | | 262616 if including Id 102 and 103  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS log file''' <code> ntfsLogFile* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsRestartPageSize = $1000;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsLogFileClientFirst = $0000;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsLogFileClientUnknown = $FFFF;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsLogFileRestartFlagClean = $0002;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS old log file size''' <code> ntfs*OldLogSize </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsMaxOldLogSize = 10;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsOldLogSizes:array[0..ntfsMaxOldLogSize] of TNTFSLogSize = (</code>  | ||
| + | |-  | ||
| + | |colspan="2"|''DiskSize,LogSize''  | ||
| + | |-  | ||
| + | | <code>(DiskSize:8388608;LogSize:262144),</code>  | ||
| + | | greater than 8MB, 256KB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:16777216;LogSize:262144),</code>  | ||
| + | | greater than 16MB, 256KB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:33554432;LogSize:524288),</code>  | ||
| + | | greater than 32MB, 512KB log (Previously 262144)  | ||
| + | |-  | ||
| + | | <code>(DiskSize:67108864;LogSize:1048576),</code>  | ||
| + | | greater than 64MB, 1MB log (Previously 524288)  | ||
| + | |-  | ||
| + | | <code>(DiskSize:134217728;LogSize:2097152),</code>  | ||
| + | | greater than 128MB, 2MB log (Previously 1048576)  | ||
| + | |-  | ||
| + | | <code>(DiskSize:268435456;LogSize:2097152),</code>  | ||
| + | | greater than 256MB, 2MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:536870912;LogSize:4194304),</code>  | ||
| + | | greater than 512MB, 4MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:1073741824;LogSize:8388608),</code>  | ||
| + | | greater than 1GB, 8MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:2147483648;LogSize:16777216),</code>  | ||
| + | | greater than 2GB, 16MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:4294967296;LogSize:33554432),</code>  | ||
| + | | greater than 4GB, 32MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:8589934592;LogSize:67108864));</code>  | ||
| + | | greater than 8GB, 64MB log  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS log file size''' <code> ntfs*LogSize </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsMaxLogSize = 8;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfsLogSizes:array[0..ntfsMaxLogSize] of TNTFSLogSize = (</code>  | ||
| + | |-  | ||
| + | |colspan="2"|''DiskSize,LogSize''  | ||
| + | |-  | ||
| + | | <code>(DiskSize:0;LogSize:2097152),</code>  | ||
| + | | less than 128MB, 2MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:134217728;LogSize:4194304),</code>  | ||
| + | | greater than 128MB, 4MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:268435456;LogSize:5242880),</code>  | ||
| + | | greater than 256MB, 5MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:536870912;LogSize:6291456),</code>  | ||
| + | | greater than 512MB, 6MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:805306368;LogSize:7340032),</code>  | ||
| + | | greater than 768MB, 7MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:1073741824;LogSize:8388608),</code>  | ||
| + | | greater than 1GB, 8MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:2147483648;LogSize:16777216),</code>  | ||
| + | | greater than 2GB, 16MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:4294967296;LogSize:33554432),</code>  | ||
| + | | greater than 4GB, 32MB log  | ||
| + | |-  | ||
| + | | <code>(DiskSize:8589934592;LogSize:67108864));</code>  | ||
| + | | greater than 8GB, 64MB log  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />    | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS MFT/MFTMirr start''' <code> ntfsMftStart* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsMftStartCluster = 786432;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>ntfsMftCutoverCount = 4194304;</code>  | ||
| + | | 4194304 * 4096 = 16GB (The point at which the MFT becomes fixed in location)  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS file size''' <code> ntfsFileSize* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeMft = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeMftMirr = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeLogFile = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeVolume = 0;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSize12AttrDef = 36864;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSize30AttrDef = 2560;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSize31AttrDef = 2560;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeRoot = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeBitmap = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeBoot = 8192;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeBadClus = 0;</code>  | ||
| + | | Starting size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeSecure = 0;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeUpCase = 131072;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeExtend = 0;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeObjId = 0;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeQuota = 0;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeReparse = 0;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileSizeUsnJrnl = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS stream size''' <code> ntfsStreamSize* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsStreamSizeSecurity = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsStreamSizeBadClus = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsStreamSizeMountMgr = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsStreamSizeJournal = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsStreamSizeJrnlMax = ntfsUnknownCluster;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS header size''' <code> ntfs*HeaderSize* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsFileRecord12Size = 42;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsFileRecord31Size = 48;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsIndexRecordSize = 24;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsIndexHeaderSize = 16;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsIndexEntrySize = 16;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsAttributeTypeSize = 4;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsAttributeHeaderSize = 16;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsResidentHeaderSize = 24;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsNonResidentHeaderSize = 64;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsCompressedHeaderSize = 72;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />  | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS attribute size''' <code> ntfsAttribute*Size </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Minimum sizes  | ||
| + | |-  | ||
| + | |colspan="2"|    | ||
| + | |-  | ||
| + | | <code>ntfsStandardInformation12Size = 48;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsStandardInformation30Size = 72;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsAttributeListSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsFileNameSize = 66;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsObjectIdSize = 16;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsObjectIdSize2 = 32;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsObjectIdSize3 = 48;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsObjectIdSize4 = 64;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsVolumeVersionSize = 8;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityDescriptorSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsVolumeNameSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsVolumeInformationSize = 12;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsDataSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsIndexRootSize = 16;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsIndexAllocationSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsBitmapSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsReparsePointSize = 8;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsReparsePointMicrosoftSize = 8;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsReparsePointOtherSize = 24;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsSymbolicLinkSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsExtendedAttrInformationSize = 8;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsExtendedAttrSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsPropertySetSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsLoggedUtilityStreamSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsUnknownSize = 0;</code>  | ||
| + | | Variable size  | ||
| + | |-  | ||
| + | | <code>ntfsEndSize = 4;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS data size''' <code> ntfs*Size </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Minimum sizes  | ||
| + | |-  | ||
| + | |colspan="2"|    | ||
| + | |-  | ||
| + | | <code>ntfsRunSize = 1;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsItemSize = 26;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsObjIdSize = 56;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsQuotaSize = 48;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsOwnerSize = 4;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsUpCaseSize = 131072;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsAttrDefSize = 160;</code>  | ||
| + | | Constant size  | ||
| + | |-  | ||
| + | | <code>ntfsReparseSize = 12;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsExtendedSize = 8;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsSecuritySize = 20;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsSidSize = 8;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsAclSize = 8;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsAceSize = 8;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityItemSize = 40;</code>  | ||
| + | | Minimum size (Includes ntfsSecuritySize)  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityIdSize = 20;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityHashSize = 20;</code>  | ||
| + | | Minimum size (Previously 24 - Modified to remove Padding)  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />   | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS key size''' <code> ntfs*KeySize </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Minimum sizes  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfsObjIdKeySize = 16;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsQuotaKeySize = 4;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsOwnerKeySize = 8;</code>  | ||
| + | | Minimum size (Includes ntfsSidSize)  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityIdKeySize = 4;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsSecurityHashKeySize = 8;</code>  | ||
| + | | Minimum size  | ||
| + | |-  | ||
| + | | <code>ntfsReparseKeySize = 12;</code>  | ||
| + | | Constant size (Not 16 even though CollateType is GUID)  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />  | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS update sequence size''' <code> ntfsUpdateSequenceSize* </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | | <code>ntfsUpdateSequenceSize = 512;</code>  | ||
| + | | Constant size (Always 512 regardless of the sector size)  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />  | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">  | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''NTFS sector count''' <code> ntfs*SectorCount </code></div>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Used for NTFS formatting (Fixed Disk only)  | ||
| + | |-  | ||
| + | |colspan="2"|    | ||
| + | |-  | ||
| + | | <code>ntfs12MaxSectorCount = 4;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfs12SectorCounts:array[0..ntfs12MaxSectorCount] of TNTFSSectorCount = (</code>  | ||
| + | |-  | ||
| + | |colspan="2"|''SectorCount,SectorsPerCluster''  | ||
| + | |-  | ||
| + | | <code>(SectorCount:16384;SectorsPerCluster:0),</code>  | ||
| + | | up to 8 MB, the 0 value for SectorsPerCluster trips an error  | ||
| + | |-  | ||
| + | | <code>(SectorCount:1048576;SectorsPerCluster:1),</code>  | ||
| + | | up to 512 MB, sector size cluster  | ||
| + | |-  | ||
| + | | <code>(SectorCount:2097152;SectorsPerCluster:2),</code>  | ||
| + | | up to 1 GB, 1k cluster  | ||
| + | |-  | ||
| + | | <code>(SectorCount:4194304;SectorsPerCluster:4),</code>  | ||
| + | | up to 2 GB, 2k cluster  | ||
| + | |-  | ||
| + | | <code>(SectorCount:$FFFFFFFF;SectorsPerCluster:8));</code>  | ||
| + | | greater than 2 GB, 4k cluster  | ||
| + | |-  | ||
| + | |colspan="2"|   | ||
| + | |-  | ||
| + | | <code>ntfs30MaxSectorCount = 4;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |colspan="2"|<code>ntfs30SectorCounts:array[0..ntfs30MaxSectorCount] of TNTFSSectorCount = (</code>  | ||
| + | |-''  | ||
| + | |colspan="2"|''SectorCount,SectorsPerCluster''  | ||
| + | |-  | ||
| + | | <code>(SectorCount:16384;SectorsPerCluster:0),</code>  | ||
| + | | up to 8 MB, the 0 value for SectorsPerCluster trips an error  | ||
| + | |-  | ||
| + | | <code>(SectorCount:1048576;SectorsPerCluster:1),</code>  | ||
| + | | up to 512 MB, sector size cluster  | ||
| + | |-  | ||
| + | | <code>(SectorCount:2097152;SectorsPerCluster:2),</code>  | ||
| + | | up to 1 GB, 1k cluster  | ||
| + | |-  | ||
| + | | <code>(SectorCount:4194304;SectorsPerCluster:4),</code>  | ||
| + | | up to 2 GB, 2k cluster  | ||
| + | |-  | ||
| + | | <code>(SectorCount:$FFFFFFFF;SectorsPerCluster:8));</code>  | ||
| + | | greater than 2 GB, 4k cluster  | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>  | ||
| + | <br />  | ||
=== Type definitions ===  | === Type definitions ===  | ||
----  | ----  | ||
| − | ''  | + | |
| + | '''NTFS attribute definition'''  | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">  | ||
| + | |||
| + | <code>TNTFSAttrDefine = record</code>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Note: Not Packed  | ||
| + | |-  | ||
| + | | <code>AttributeType:LongWord;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>AttributeName:String;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>AttrDefFlags:LongWord;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>MinimumSize:Int64;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>MaximumSize:Int64;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>    | ||
| + | |||
| + | '''NTFS uppercase conversion'''  | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">  | ||
| + | |||
| + | <code>TNTFSUpcaseConvert = record</code>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Note: Not Packed  | ||
| + | |-  | ||
| + | | <code>Count:Word;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>Value:Word;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>    | ||
| + | |||
| + | '''NTFS sector count'''  | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">  | ||
| + | |||
| + | <code>TNTFSSectorCount = record</code>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Note: Not Packed (Fixed Disk only)  | ||
| + | |-  | ||
| + | | <code>SectorCount:LongWord;</code>  | ||
| + | | Based on 512 bytes per sector only  | ||
| + | |-  | ||
| + | | <code>SectorsPerCluster:LongWord;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>    | ||
| + | |||
| + | '''NTFS log size'''  | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">  | ||
| + | |||
| + | <code>TNTFSLogSize = record</code>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Note: Not Packed  | ||
| + | |-  | ||
| + | | <code>DiskSize:Int64;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>LogSize:Int64;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>    | ||
| + | |||
| + | '''NTFS default SID'''  | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">  | ||
| + | <code>PNTFSDefaultSid = ^TNTFSDefaultSid;</code>  | ||
| + | |||
| + | <code>TNTFSDefaultSid = record</code>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Note: Not Packed  | ||
| + | |-  | ||
| + | | <code>Sid:TWellKnownSidType;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>    | ||
| + | |||
| + | '''NTFS default access control entry'''  | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">  | ||
| + | |||
| + | <code>TNTFSDefaultAce = record</code>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Note: Not Packed  | ||
| + | |-  | ||
| + | | <code>AceType:Byte;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>AceFlags:Byte;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>AceSize:Word;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>Mask:LongWord;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>Sid:TWellKnownSidType;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>    | ||
| + | |||
| + | '''NTFS default access control list'''  | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">  | ||
| + | |||
| + | <code>TNTFSDefaultAcl = record</code>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Note: Not Packed  | ||
| + | |-  | ||
| + | | <code>AclRevision:Byte;</code>  | ||
| + | | style="width: 50%;"|   | ||
| + | |-  | ||
| + | | <code>AclSize:Word;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>AceCount:Word;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>Aces:array[0..7] of TNTFSDefaultAce;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>    | ||
| + | |||
| + | '''NTFS default descriptor'''  | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">  | ||
| + | <code>PNTFSDefaultDescriptor = ^TNTFSDefaultDescriptor;</code>  | ||
| + | |||
| + | <code>TNTFSDefaultDescriptor = record</code>  | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">  | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;"  | ||
| + | |-  | ||
| + | |colspan="2"|Note: Not Packed  | ||
| + | |-  | ||
| + | | <code>Size:LongWord;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>Revision:Byte;</code>  | ||
| + | | Revision  | ||
| + | |-  | ||
| + | | <code>Control:Word;</code>  | ||
| + | | Control Flags  | ||
| + | |-  | ||
| + | | <code>OwnerOffset:LongWord;</code>  | ||
| + | | Offset to Owner SID  | ||
| + | |-  | ||
| + | | <code>GroupOffset:LongWord;</code>  | ||
| + | | Offset to Group SID  | ||
| + | |-  | ||
| + | | <code>SaclOffset:LongWord;</code>  | ||
| + | | Offset to SACL  | ||
| + | |-  | ||
| + | | <code>DaclOffset:LongWord;</code>  | ||
| + | | Offset to DACL  | ||
| + | |-  | ||
| + | | <code>Owner:TWellKnownSidType;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>Group:TWellKnownSidType;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>Sacl:TNTFSDefaultAcl;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | | <code>Dacl:TNTFSDefaultAcl;</code>  | ||
| + | |    | ||
| + | |-  | ||
| + | |}  | ||
| + | </div></div>    | ||
| + | <br />   | ||
=== Public variables ===  | === Public variables ===  | ||
----  | ----  | ||
| − | ''  | + | |
| + | '''NTFS specific variables'''  | ||
| + | |||
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"  | ||
| + | |-  | ||
| + | | <code>SecurityHashPadding:LongWord = ntfsSecurityHashPadding;</code>  | ||
| + | | style="width: 40%;"|  | ||
| + | |-  | ||
| + | |}  | ||
| + | <br />  | ||
=== Function declarations ===  | === Function declarations ===  | ||
Latest revision as of 05:38, 31 August 2021
Return to Unit Reference
Description
Ultibo NTFS Constants unit
Constants
 ntfs*  ntfsNTFS12 = 0;
 | 
4.0 (WinNT) | 
 ntfsNTFS30 = 1;
 | 
5.0 (Win2000) | 
 ntfsNTFS31 = 2;
 | 
5.1/5.2/6.0/6.1 (WinXP/Win2003/WinVista/Win2008/Win7) | 
 ntfsAnyName = '*';
 | 
|
 ntfsDotName = '.';
 | 
|
 ntfsDotDotName = '..';
 | 
|
 ntfsAnyNameLength = 1;
 | 
|
 ntfsDotNameLength = 1;
 | 
|
 ntfsDotDotNameLength = 2;
 | 
|
 ntfsBlankNameLength = 0;
 | 
|
 ntfsOemName = 'NTFS';
 | 
Padded with spaces to 8 bytes | 
 ntfsEntryPadding = $20;
 | 
Padded with spaces (32) | 
  
 ntfsSecurity*  ntfsSecurityHashPadding = $00490049;
 | 
Unicode string II | 
 ntfsSecurityHashPaddingSize = 4;
 | 
SizeOf(LongWord) | 
 ntfsSecurityMirrorOffset = $00040000;
 | 
256K Offset between primary and mirror entries | 
 ntfsSecuritySectionOffset = $00040000;
 | 
256K Offset between sections (End of one section to Start of next) | 
 ntfsSecuritySectionShift = 18;
 | 
Not Used | 
 ntfsSecurityOffsetMask = $0003FFFF;
 | 
Used to determine the offset within a section from the offset | 
 ntfsSecuritySectionMask = $FFFC0000;
 | 
Used to determine the start of a section from the offset | 
 ntfsSecurityMirrorTest = $00040000;
 | 
Mirror blocks will always be 40000 or C0000 | 
  
 ntfsMax*  ntfsMaxPath = 260;
 | 
|
 ntfsMaxFile = 255;
 | 
|
 ntfsMaxAlias = 999999;
 | 
Max number of lfn aliases (ie ~999999) | 
 ntfsMaxNameAlias = 4;
 | 
|
 ntfsMaxHashAlias = 999;
 | 
|
 ntfsMaxHashShift = 16;
 | 
|
 ntfsMaxVolumeName = 255;
 | 
|
 ntfsMaxAttributeName = 255;
 | 
|
  
 ntfs*ClusterSize*  ntfsMinClusterSize = 512;
 | 
|
 ntfs12MaxClusterSize = 4096;
 | 
|
 ntfs30MaxClusterSize = 65536;
 | 
  
 ntfs*Sector  ntfsBootSector = 0;
 | 
|
 ntfsStartSector = 0;
 | 
Int64 | 
 ntfsUnknownSector = -1;
 | 
Int64 | 
  
 ntfs*Cluster  ntfsStartCluster = 0;
 | 
Int64 | 
 ntfsUnevenCluster = 1;
 | 
Int64 | 
 ntfsUnknownCluster = -1;
 | 
Int64 | 
  
 ntfsStatus*  ntfsStatusNone = $00000000;
 | 
|
 ntfsStatusAdded = $00000001;
 | 
Used by Node | 
 ntfsStatusDeleted = $00000002;
 | 
Used by Node | 
 ntfsStatusChanged = $00000004;
 | 
Used by Key, Node, Index | 
 ntfsStatusLoaded = $00000008;
 | 
Used by Index, List | 
 ntfsStatusInvalid = $00000010;
 | 
Used by Key, Item | 
 ntfsStatusResizing = $00000020;
 | 
Used by Record | 
 ntfsStatusRemoving = $00000040;
 | 
Used by Record | 
 ntfsStatusUpdating = $00000080;
 | 
Used by Attribute | 
 ntfsStatusMirrored = $00000100;
 | 
Metafile Records (0 to 3) | 
 ntfsStatusMetafile = $00000200;
 | 
Metafile Records (0 to 11) | 
 ntfsStatusReserved = $00000400;
 | 
Reserved MFT Records (12 to 15)(0C to 0F) | 
 ntfsStatusExpansion = $00000800;
 | 
Expansion MFT Records (16 to 23)(10 to 17) | 
 ntfsStatusOverflow = $00001000;
 | 
Record has an attribute list attribute | 
 ntfsStatusExtension = $00002000;
 | 
Record is an extension of the base record | 
 ntfsStatusFixed = $00004000;
 | 
Attribute is a fixed size (can write single item) Not used due to Fixups | 
 ntfsStatusSingle = $00008000;
 | 
Attribute only allows a single instance (Standard Information, Attribute List, End etc) | 
 ntfsStatusUnlisted = $00010000;
 | 
Attribute is not listed in an Attribute List (Attribute List, End) | 
 ntfsStatusUnmovable = $00020000;
 | 
Attribute cannot be moved from the Base Record (Standard Information, Attribute List) | 
 ntfsStatusManaged = $00040000;
 | 
Attribute is handled as a record or list, data member is not valid (Standard Information, Attribute List, FileName etc) | 
 ntfsStatusAny = $FFFFFFFF;
 | 
|
  
 ntfsCompare*  ntfsCompareLess = -1;
 | 
|
 ntfsCompareEqual = 0;
 | 
|
 ntfsCompareGreater = 1;
 | 
  
 ntfsInstance*  ntfsInstanceFirst = 0;
 | 
|
 ntfsInstanceLast = -1;
 | 
  
 ntfsAttrDefNo*  ntfsAttrDefNoMinimum = 0;
 | 
Int64 | 
 ntfsAttrDefNoMaximum = -1;
 | 
Int64 | 
  
 ntfsFileReference*  ntfsFileReferenceNone = 0;
 | 
Int64 | 
 ntfsRecordNumberMask = $0000FFFFFFFFFFFF;
 | 
Get a record number from a file reference | 
 ntfsUnknownRecordNumber = -1;
 | 
Int64 | 
  
 ntfsBitmap*  ntfsBitmapUnknown = LongWord(-1);
 | 
  
 ntfsBlockCountMask*  ntfsBlockCountMask8 = $FFFFFFFFFFFFFFF8;
 | 
0000000000000007 | 
 ntfsBlockCountMask64 = $FFFFFFFFFFFFFFC0;
 | 
000000000000003F | 
 
 ntfsMftZone* | HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem - NtfsMftZoneReservation - DWORD | |
 ntfsMftZone50percent = 500;
 | 
Registry value 4 | 
 ntfsMftZone37percent = 375;
 | 
Registry value 3 | 
 ntfsMftZone25percent = 250;
 | 
Registry value 2 | 
 ntfsMftZone12percent = 125;
 | 
Registry value 1 (Default) | 
 ntfsMftZone0percent = 0;
 | 
Registry value 0 (Not allowed) | 
 
 ntfsMftFixedZone* | Vista/2008 | |
 ntfsMftFixedZone1000MB = 1000;
 | 
Registry value 0 (Not allowed) | 
 ntfsMftFixedZone800MB = 800;
 | 
Registry value 4 | 
 ntfsMftFixedZone600MB = 600;
 | 
Registry value 3 | 
 ntfsMftFixedZone400MB = 400;
 | 
Registry value 2 | 
 ntfsMftFixedZone200MB = 200;
 | 
Registry value 1 (Default) | 
 ntfsMftFixedZone0MB = 0;
 | 
Registry value 0 (Not allowed) | 
 ntfsMftFixedZone1000MBSize = 1048576000;
 | 
|
 ntfsMftFixedZone800MBSize = 838860800;
 | 
|
 ntfsMftFixedZone600MBSize = 629145600;
 | 
|
 ntfsMftFixedZone400MBSize = 419430400;
 | 
|
 ntfsMftFixedZone200MBSize = 209715200;
 | 
|
 ntfsMftFixedZone0MBSize = 0;
 | 
|
 
 ntfsRunOffsetMask*  ntfsRunOffsetMask = $F0;
 | 
shr 4 | 
 ntfsRunLengthMask = $0F;
 | 
 
 ntfsRunEncodeMask* | (and) | |
ntfsRunEncodeMasks:array[0..8] of Int64 = (
 | |
 $0000000000000000,
 | 
|
 $00000000000000FF,
 | 
|
 $000000000000FFFF,
 | 
|
 $0000000000FFFFFF,
 | 
|
 $00000000FFFFFFFF,
 | 
|
 $000000FFFFFFFFFF,
 | 
|
 $0000FFFFFFFFFFFF,
 | 
|
 $00FFFFFFFFFFFFFF,
 | 
|
 $FFFFFFFFFFFFFFFF);
 | 
Not Used | 
  
 ntfsRunEncodeTest* | (and) | |
(*ntfsRunEncodeTests:array[0..8] of Int64 = (
 | |
 $FFFFFFFFFFFFFFFF,
 | 
Not Used | 
 $FFFFFFFFFFFFFF00,
 | 
|
 $FFFFFFFFFFFF0000,
 | 
|
 $FFFFFFFFFF000000,
 | 
|
 $FFFFFFFF00000000,
 | 
|
 $FFFFFF0000000000,
 | 
|
 $FFFF000000000000,
 | 
|
 $FF00000000000000,
 | 
|
 $0000000000000000);*)
 | 
|
ntfsRunEncodeTests:array[0..8] of Int64 = (
 | |
 $0000000000000000,
 | 
|
 $000000000000007F,
 | 
|
 $0000000000007FFF,
 | 
|
 $00000000007FFFFF,
 | 
|
 $000000007FFFFFFF,
 | 
|
 $0000007FFFFFFFFF,
 | 
|
 $00007FFFFFFFFFFF,
 | 
|
 $007FFFFFFFFFFFFF,
 | 
|
 $7FFFFFFFFFFFFFFF);
 | 
Not Used | 
  
 ntfsRunNegativeTest* ntfsRunNegativeTests:array[0..8] of Int64 = (
 | |
 $FFFFFFFFFFFFFFFF,
 | 
Not Used | 
 $FFFFFFFFFFFFFF80,
 | 
|
 $FFFFFFFFFFFF8000,
 | 
|
 $FFFFFFFFFF800000,
 | 
|
 $FFFFFFFF80000000,
 | 
|
 $FFFFFF8000000000,
 | 
|
 $FFFF800000000000,
 | 
|
 $FF80000000000000,
 | 
|
 $8000000000000000);
 | 
|
 
 ntfsRunDecode*Mask | (and) (or not) | |
ntfsRunDecode1Masks:array[1..1] of Byte = (
 | |
 $FF);
 | 
|
ntfsRunDecode2Masks:array[2..2] of Word = (
 | |
 $FFFF);
 | 
|
ntfsRunDecode4Masks:array[3..4] of LongWord = (
 | |
 $00FFFFFF,
 | 
|
 $FFFFFFFF);
 | 
|
ntfsRunDecode8Masks:array[5..8] of Int64 = (
 | |
 $000000FFFFFFFFFF,
 | 
|
 $0000FFFFFFFFFFFF,
 | 
|
 $00FFFFFFFFFFFFFF,
 | 
|
 $FFFFFFFFFFFFFFFF);
 | 
|
  
 ntfsRunDecode*Test | (>=) | |
ntfsRunDecode1Tests:array[1..1] of Byte = (
 | |
 $80);
 | 
|
ntfsRunDecode2Tests:array[2..2] of Word = (
 | |
 $8000);
 | 
|
ntfsRunDecode4Tests:array[3..4] of LongWord = (
 | |
 $00800000,
 | 
|
 $80000000);
 | 
|
ntfsRunDecode8Tests:array[5..8] of Int64 = (
 | |
 $0000008000000000,
 | 
|
 $0000800000000000,
 | 
|
 $0080000000000000,
 | 
|
 $8000000000000000);
 | 
|
  
 ntfsCompression* ntfsCompressionTags:array[1..8] of Byte = (
 | |
 $01,
 | 
|
 $02,
 | 
|
 $04,
 | 
|
 $08,
 | 
|
 $10,
 | 
|
 $20,
 | 
|
 $40,
 | 
|
 $80);
 | 
|
 ntfsCompressionTagMask = $0FFF;
 | 
The default mask for encoding and decoding the offset and length of a tag | 
 ntfsCompressionTagShift = 12;
 | 
 The default shift for encoding and decoding the offset and length of a tag.
 Tag is encoded as Offset:Length by varying the mask and shift based on the position.  | 
 ntfsCompressionUnitSize = 4;
 | 
The default shift count for compression unit to cluster conversion | 
 ntfsCompressionBlockSize = 4096;
 | 
The fixed size of a compression block inside the variable compression unit | 
 ntfsCompressionLengthMask = $0FFF;
 | 
The mask for the maximum length of a compressed block | 
 ntfsCompressionMarkerMask = $B000;
 | 
The mask for the marker of a compressed block | 
 ntfsCompressionMarkerTest = $8000;
 | 
The test for the marker of a compressed block | 
 ntfsCompressionTableInit = $FF;
 | 
The initialization value for the compression table | 
 ntfsCompressionTableUnused = $FFFF;
 | 
The unused or unseen value for the compression table | 
 
 ntfsBitmapMask*  ntfsBitmapMaskBits = 64;
 | 
Int64 Bitmap Masks | 
 ntfsBitmapMaskNone = $0000000000000000;
 | 
Int64 (Used for fast counting of free blocks) | 
 ntfsBitmapMaskAll = $FFFFFFFFFFFFFFFF;
 | 
Int64 (Used for fast counting of used blocks) | 
 
 ntfs*Signature  ntfsFileSignature = $454C4946;
 | 
FILE | 
 ntfsIndexSignature = $58444E49;
 | 
INDX | 
 ntfsRecordSignature = $44524352;
 | 
RCRD | 
 ntfsRestartSignature = $52545352;
 | 
RSTR | 
 ntfsCheckedSignature = $00000000;
 | 
CHKD | 
 ntfsNullGUID:TGUID = (D1:$00000000;D2:$0000;D3:$0000;D4:($00,$00,$00,$00,$00,$00,$00,$00));
 | 
|
 ntfsNullFileTime:TFileTime = (dwLowDateTime:$00000000;dwHighDateTime:$00000000);
 | 
|
 
 ntfsTableType*  ntfsTableTypeMft = $00000000;
 | 
|
 ntfsTableTypeMftMirr = $00000001;
 | 
 
 ntfsFileType*  ntfsFileTypeMft = $00000000;
 | 
|
 ntfsFileTypeMftMirr = $00000001;
 | 
|
 ntfsFileTypeLogFile = $00000002;
 | 
|
 ntfsFileTypeVolume = $00000003;
 | 
|
 ntfsFileTypeAttrDef = $00000004;
 | 
|
 ntfsFileTypeRoot = $00000005;
 | 
|
 ntfsFileTypeBitmap = $00000006;
 | 
|
 ntfsFileTypeBoot = $00000007;
 | 
|
 ntfsFileTypeBadClus = $00000008;
 | 
|
 ntfsFileTypeSecure = $00000009;
 | 
|
 ntfs12FileTypeQuota = $00000009;
 | 
Version 1.2 only | 
 ntfsFileTypeUpCase = $0000000A;
 | 
|
 ntfsFileTypeExtend = $0000000B;
 | 
|
 ntfsFileTypeObjId = $10000000;
 | 
Any record number | 
 ntfsFileTypeQuota = $20000000;
 | 
Any record number | 
 ntfsFileTypeReparse = $30000000;
 | 
Any record number | 
 ntfsFileTypeUsnJrnl = $40000000;
 | 
Any record number | 
 ntfsFileTypeFile = $50000000;
 | 
Any record number (Not Used) | 
 ntfsFileTypeDirectory = $60000000;
 | 
Any record number (Not Used) | 
 ntfsFileTypeReserved1 = $0000000C;
 | 
Reserved Records | 
 ntfsFileTypeReserved2 = $0000000D;
 | 
|
 ntfsFileTypeReserved3 = $0000000E;
 | 
|
 ntfsFileTypeReserved4 = $0000000F;
 | 
|
 ntfsFileTypeExpansion1 = $00000010;
 | 
Expansion Records | 
 ntfsFileTypeExpansion2 = $00000011;
 | 
|
 ntfsFileTypeExpansion3 = $00000012;
 | 
|
 ntfsFileTypeExpansion4 = $00000013;
 | 
|
 ntfsFileTypeExpansion5 = $00000014;
 | 
|
 ntfsFileTypeExpansion6 = $00000015;
 | 
|
 ntfsFileTypeExpansion7 = $00000016;
 | 
|
 ntfsFileTypeExpansion8 = $00000017;
 | 
|
 
 ntfs*RecordNumber  ntfsQuotaRecordNumber = $00000018;
 | 
Only used during Format | 
 ntfsObjIdRecordNumber = $00000019;
 | 
Only used during Format | 
 ntfsReparseRecordNumber = $0000001A;
 | 
Only used during Format | 
 ntfsUsnJrnlRecordNumber = $0000001B;
 | 
Not Used | 
 ntfsDefaultRecordCount = $0000001B;
 | 
Files up to $Reparse | 
 ntfsDefaultMirrorCount = $00000004;
 | 
Files up to $Volume | 
 
 ntfs*FileReference  ntfsRootFileReference = $0005000000000005;
 | 
Only used during Format | 
 ntfsExtendFileReference = $000B00000000000B;
 | 
Only used during Format | 
 ntfsVolumeFileReference = $0003000000000003;
 | 
Only used during Format | 
 
 ntfsFileName*  ntfsFileNameMft = '$MFT';
 | 
|
 ntfsFileNameMftMirr = '$MFTMirr';
 | 
|
 ntfsFileNameLogFile = '$LogFile';
 | 
|
 ntfsFileNameVolume = '$Volume';
 | 
|
 ntfsFileNameAttrDef = '$AttrDef';
 | 
|
 ntfsFileNameRoot = '.';
 | 
|
 ntfsFileNameBitmap = '$Bitmap';
 | 
|
 ntfsFileNameBoot = '$Boot';
 | 
|
 ntfsFileNameBadClus = '$BadClus';
 | 
|
 ntfsFileNameSecure = '$Secure';
 | 
|
 ntfsFileNameUpCase = '$UpCase';
 | 
|
 ntfsFileNameExtend = '$Extend';
 | 
|
 ntfsFileNameObjId = '$ObjId';
 | 
|
 ntfsFileNameQuota = '$Quota';
 | 
|
 ntfsFileNameReparse = '$Reparse';
 | 
|
 ntfsFileNameUsnJrnl = '$UsnJrnl';
 | 
|
 
 ntfsAttrType*  ntfsAttrTypeNone = $00000000;
 | 
Marker only | 
 ntfsAttrTypeStandardInformation = $00000010;
 | 
|
 ntfsAttrTypeAttributeList = $00000020;
 | 
|
 ntfsAttrTypeFileName = $00000030;
 | 
|
 ntfsAttrTypeObjectId = $00000040;
 | 
|
 ntfsAttrTypeVolumeVersion = $00000040;
 | 
Version 1.2 only | 
 ntfsAttrTypeSecurityDescriptor = $00000050;
 | 
|
 ntfsAttrTypeVolumeName = $00000060;
 | 
|
 ntfsAttrTypeVolumeInformation = $00000070;
 | 
|
 ntfsAttrTypeData = $00000080;
 | 
|
 ntfsAttrTypeIndexRoot = $00000090;
 | 
|
 ntfsAttrTypeIndexAllocation = $000000A0;
 | 
|
 ntfsAttrTypeBitmap = $000000B0;
 | 
|
 ntfsAttrTypeReparsePoint = $000000C0;
 | 
|
 ntfsAttrTypeSymbolicLink = $000000C0;
 | 
Version 1.2 only | 
 ntfsAttrTypeExtendedAttrInformation = $000000D0;
 | 
|
 ntfsAttrTypeExtendedAttr = $000000E0;
 | 
|
 ntfsAttrTypePropertySet = $000000F0;
 | 
Version 3.0 only | 
 ntfsAttrTypeLoggedUtilityStream = $00000100;
 | 
|
 ntfsAttrTypeEnd = $FFFFFFFF;
 | 
Marker only | 
 ntfsAttrTypeAny = $00000000;
 | 
Used to return all attributes | 
 
 ntfsAttrName*  ntfsAttrNameNone = '$NONE';
 | 
Marker only | 
 ntfsAttrNameStandardInformation = '$STANDARD_INFORMATION';
 | 
|
 ntfsAttrNameAttributeList = '$ATTRIBUTE_LIST';
 | 
|
 ntfsAttrNameFileName = '$FILE_NAME';
 | 
|
 ntfsAttrNameObjectId = '$OBJECT_ID';
 | 
|
 ntfsAttrNameVolumeVersion = '$VOLUME_VERSION';
 | 
Version 1.2 only | 
 ntfsAttrNameSecurityDescriptor = '$SECURITY_DESCRIPTOR';
 | 
|
 ntfsAttrNameVolumeName = '$VOLUME_NAME';
 | 
|
 ntfsAttrNameVolumeInformation = '$VOLUME_INFORMATION';
 | 
|
 ntfsAttrNameData = '$DATA';
 | 
|
 ntfsAttrNameIndexRoot = '$INDEX_ROOT';
 | 
|
 ntfsAttrNameIndexAllocation = '$INDEX_ALLOCATION';
 | 
|
 ntfsAttrNameBitmap = '$BITMAP';
 | 
|
 ntfsAttrNameReparsePoint = '$REPARSE_POINT';
 | 
|
 ntfsAttrNameSymbolicLink = '$SYMBOLIC_LINK';
 | 
Version 1.2 only | 
 ntfsAttrNameExtendedAttrInformation = '$EA_INFORMATION';
 | 
|
 ntfsAttrNameExtendedAttr = '$EA';
 | 
|
 ntfsAttrNamePropertySet = '$PROPERTY_SET';
 | 
Version 3.0 only | 
 ntfsAttrNameLoggedUtilityStream = '$LOGGED_UTILITY_STREAM';
 | 
|
 ntfsAttrNameEnd = '$END';
 | 
Marker only | 
 
 ntfsOwnerId*  ntfsOwnerIdNull = $00000001;
 | 
|
 ntfsOwnerIdFirst = $00000100;
 | 
|
 ntfsOwnerIdUnknown = $FFFFFFFF;
 | 
|
 
 ntfsDefaultOwnerId*  ntfsDefaultOwnerId1 = $00000001;
 | 
|
 ntfsDefaultOwnerId100 = $00000100;
 | 
 
 ntfsDefaultSid*  ntfsMaxDefaultSid = 1;
 | 
|
 ntfsDefaultSidNone = 0;
 | 
|
 ntfsDefaultSid100 = 1;
 | 
|
ntfsDefaultSids:array[1..ntfsMaxDefaultSid] of TNTFSDefaultSid = (
 | |
 (Sid:WinBuiltinAdministratorsSid));
 | 
100 | 
  
 ntfsSecurityId*  ntfsSecurityIdNull = $00000001;
 | 
|
 ntfsSecurityIdFirst = $00000100;
 | 
|
 ntfsSecurityIdUnknown = $FFFFFFFF;
 | 
|
 
 ntfsDefaultSecurityId*  ntfsDefaultSecurityId100 = $00000100;
 | 
|
 ntfsDefaultSecurityId101 = $00000101;
 | 
|
 ntfsDefaultSecurityId102 = $00000102;
 | 
|
 ntfsDefaultSecurityId103 = $00000103;
 | 
 
 ntfsDefaultDescriptor*  ntfsMaxDefaultDescriptor = 7;
 | 
|
 ntfsDefaultDescriptorNone = 0;
 | 
|
 ntfsDefaultDescriptorVolume = 1;
 | 
|
 ntfsDefaultDescriptorAttrDef = 2;
 | 
|
 ntfsDefaultDescriptorRoot = 3;
 | 
|
 ntfsDefaultDescriptor102 = 4;
 | 
|
 ntfsDefaultDescriptor103 = 5;
 | 
|
 ntfsDefaultDescriptorFile = 6;
 | 
Used by NTFSDefaultSecurity option | 
 ntfsDefaultDescriptorFolder = 7;
 | 
Used by NTFSDefaultSecurity option | 
 ntfsDefaultDescriptorBoot = 2;
 | 
Same as ntfsDefaultDescriptorAttrDef | 
 ntfsDefaultDescriptor100 = 2;
 | 
Same as ntfsDefaultDescriptorAttrDef | 
 ntfsDefaultDescriptor101 = 1;
 | 
Same as ntfsDefaultDescriptorVolume | 
 ntfsDefaultDescriptorReserved = 1;
 | 
Same as ntfsDefaultDescriptorVolume | 
 ntfsSecurityOffset*  ntfsSecurityOffsetFirst = 0;
 | 
Int64 | 
 ntfsSecurityOffsetUnknown = -1;
 | 
Int64 | 
 
 ntfsIndexName*  ntfsIndexNameFileName = '$I30';
 | 
|
 ntfsIndexNameSecurityId = '$SII';
 | 
|
 ntfsIndexNameSecurityHash = '$SDH';
 | 
|
 ntfsIndexNameObjectId = '$O';
 | 
|
 ntfsIndexNameOwnerId = '$O';
 | 
|
 ntfsIndexNameQuota = '$Q';
 | 
|
 ntfsIndexNameReparse = '$R';
 | 
 
 ntfsIndexOrder*  ntfsIndexOrderFileName = 38;
 | 
|
 ntfsIndexOrderSecurityId = 100;
 | 
|
 ntfsIndexOrderSecurityHash = 100;
 | 
|
 ntfsIndexOrderObjectId = 100;
 | 
|
 ntfsIndexOrderOwnerId  = 100;
 | 
|
 ntfsIndexOrderQuota = 100;
 | 
|
 ntfsIndexOrderReparse = 100;
 | 
 
 ntfsStreamName*  ntfsStreamNameSecurity = '$SDS';
 | 
|
 ntfsStreamNameBadClus = '$Bad';
 | 
|
 ntfsStreamNameMountMgr = '$MountMgrDatabase';
 | 
|
 ntfsStreamNameJournal = '$J';
 | 
|
 ntfsStreamNameJrnlMax = '$Max';
 | 
 
 ntfsNameSpace*  ntfsNameSpacePosix = $00;
 | 
|
 ntfsNameSpaceWin32 = $01;
 | 
|
 ntfsNameSpaceDos = $02;
 | 
|
 ntfsNameSpaceBoth = ntfsNamespaceWin32 or ntfsNamespaceDos;
 | 
 
 ntfsDisplayType*  ntfsDisplayTypeNone = $00000000;
 | 
 
 ntfsCollateType*  ntfsCollateTypeBinary = $00000000;
 | 
Binary, where the first byte is most significant | 
 ntfsCollateTypeFileName = $00000001;
 | 
Filename Unicode strings (This is a case insensitive compare) | 
 ntfsCollateTypeUnicode = $00000002;
 | 
Unicode strings, except that upper case letters should come first (This is a case sensitive compare) | 
 ntfsCollateTypeLongWord = $00000010;
 | 
An unsigned long (32 bits, little endian) | 
 ntfsCollateTypeSID = $00000011;
 | 
A Security Identifier | 
 ntfsCollateTypeSecurityHash = $00000012;
 | 
First compare by the Security Hash, then by Security Descriptor (Sorting is by Security Hash then Security Id) | 
 ntfsCollateTypeGUID = $00000013;
 | 
Object GUIDs | 
 
 ntfsVolumeFlag*  ntfsVolumeFlagNone = $0000;
 | 
|
 ntfsVolumeFlagDirty = $0001;
 | 
|
 ntfsVolumeFlagResizeLogFile = $0002;
 | 
|
 ntfsVolumeFlagUpgradeMount = $0004;
 | 
|
 ntfsVolumeFlagMountedNT4 = $0008;
 | 
|
 ntfsVolumeFlagDeleteUSN = $0010;
 | 
|
 ntfsVolumeFlagRepairObjectIds = $0020;
 | 
|
 ntfsVolumeFlagModifiedChkdsk = $8000;
 | 
 
 ntfsFileRecordFlag*  ntfsFileRecordFlagNone = $0000;
 | 
|
 ntfsFileRecordFlagInUse = $0001;
 | 
|
 ntfsFileRecordFlagDirectory = $0002;
 | 
|
 ntfsFileRecordFlagUnknown1 = $0004;
 | 
Used by $Quota,$ObjId,$Reparse | 
 ntfsFileRecordFlagIndexView = $0008;
 | 
Used by $Secure,$Quota,$ObjId,$Reparse | 
 
 ntfsAttrDefFlag* ntfsAttributeFlag*  ntfsAttrDefFlagNone = $00000000;
 | 
|
 ntfsAttrDefFlagIndexed = $00000002;
 | 
|
 ntfsAttrDefFlagResident = $00000040;
 | 
Always resident | 
 ntfsAttrDefFlagUncompressed = $00000080;
 | 
Cannot Compress (Note: Resident Attributes cannot be compressed anyway) | 
 ntfsAttrDefFlagResidentIndex = $00000042;
 | 
Used by FileName (Resident and Indexed) | 
 ntfsAttributeFlagNone = $0000;
 | 
|
 ntfsAttributeFlagCompressed = $0001;
 | 
|
 ntfsAttributeFlagEncrypted = $4000;
 | 
|
 ntfsAttributeFlagSparse = $8000;
 | 
|
 
 ntfsAttribute*  ntfsAttributeIndexed = $01;
 | 
|
 ntfsAttributeNonIndexed = $00;
 | 
|
 ntfsAttributeResident = $00;
 | 
|
 ntfsAttributeNonResident = $01;
 | 
 
 ntfsIndexHeaderFlag*  ntfsIndexHeaderFlagNone = $0000;
 | 
|
 ntfsIndexHeaderFlagSubNodes = $0001;
 | 
Index has Sub Nodes | 
 
 ntfsIndexEntryFlag*  ntfsIndexEntryFlagNone = $0000;
 | 
|
 ntfsIndexEntryFlagSubNode = $0001;
 | 
Entry has Sub Node | 
 ntfsIndexEntryFlagLastNode = $0002;
 | 
Entry is Last Node (Always the Blank Node) | 
 
 ntfsQuotaFlag*  ntfsQuotaFlagNone = $0000;
 | 
|
 ntfsQuotaFlagDefaultLimits = $0001;
 | 
|
 ntfsQuotaFlagLimitReached = $0002;
 | 
|
 ntfsQuotaFlagIdDeleted = $0004;
 | 
|
 ntfsQuotaFlagTrackingEnabled = $0010;
 | 
|
 ntfsQuotaFlagEnforcementEnabled = $0020;
 | 
|
 ntfsQuotaFlagTrackingRequested = $0040;
 | 
|
 ntfsQuotaFlagLogThreshold = $0080;
 | 
|
 ntfsQuotaFlagLogLimit = $0100;
 | 
|
 ntfsQuotaFlagOutOfDate = $0200;
 | 
|
 ntfsQuotaFlagCorrupt = $0400;
 | 
|
 ntfsQuotaFlagPendingDeletes = $0800;
 | 
 
 ntfsReparseTag*  ntfsReparseTagNone = $00000000;
 | 
|
 ntfsReparseTagMountPoint = $A0000003;
 | 
|
 ntfsReparseTagHSM = $C0000004;
 | 
|
 ntfsReparseTagNSS = $80000005;
 | 
|
 ntfsReparseTagNSSRecover = $80000006;
 | 
ntfsReparseTagHSM2 | 
 ntfsReparseTagSIS = $80000007;
 | 
|
 ntfsReparseTagDFS = $80000008;
 | 
Shown in some documentation | 
 ntfsReparseTagDFS = $8000000A;
 | 
|
 ntfsReparseTagFilterManager = $8000000B;
 | 
|
 ntfsReparseTagSymbolicLink = $A000000C;
 | 
|
 ntfsReparseTagDFSR = $80000012;
 | 
 
 ntfsReparseTagFlag*  ntfsReparseTagFlagNone = $00000000;
 | 
|
 ntfsReparseTagFlagIsAlias = $20000000;
 | 
ntfsReparseTagFlagIsNameSurrogate | 
 ntfsReparseTagFlagIsHighLatency = $40000000;
 | 
|
 ntfsReparseTagFlagIsMicrosoft = $80000000;
 | 
 
 ntfsReparseTagType*  ntfsReparseTagTypeNone = $00000000;
 | 
|
 ntfsReparseTagTypeMountPoint = $00000003;
 | 
|
 ntfsReparseTagTypeHSM = $00000004;
 | 
|
 ntfsReparseTagTypeNSS = $00000005;
 | 
|
 ntfsReparseTagTypeNSSRecover = $00000006;
 | 
ntfsReparseTagHSM2 | 
 ntfsReparseTagTypeSIS = $00000007;
 | 
|
 ntfsReparseTagTypeDFS = $00000008;
 | 
Shown in some documentation | 
 ntfsReparseTagTypeDFS = $0000000A;
 | 
|
 ntfsReparseTagTypeFilterManager = $0000000B;
 | 
|
 ntfsReparseTagTypeSymbolicLink = $0000000C;
 | 
|
 ntfsReparseTagTypeDFSR = $00000012;
 | 
|
 ntfsReparsePointPrefix = '\??\';
 | 
|
 
 ntfsExtendedAttributeFlag*  ntfsExtendedAttributeFlagNone = $00;
 | 
|
 ntfsExtendedAttributeFlagNeedEA = $80;
 | 
 
 ntfsDefault*Size  ntfsDefaultBootRecordSize = 8192;
 | 
|
 ntfsDefaultFileRecordSize = 1024;
 | 
|
 ntfsDefaultIndexRecordSize = 4096;
 | 
|
 ntfsDefaultSecureSdsSize = 262396;
 | 
262616 if including Id 102 and 103 | 
 
 ntfsLogFile*  ntfsRestartPageSize = $1000;
 | 
|
 ntfsLogFileClientFirst = $0000;
 | 
|
 ntfsLogFileClientUnknown = $FFFF;
 | 
|
 ntfsLogFileRestartFlagClean = $0002;
 | 
|
 
 ntfs*OldLogSize  ntfsMaxOldLogSize = 10;
 | 
|
ntfsOldLogSizes:array[0..ntfsMaxOldLogSize] of TNTFSLogSize = (
 | |
| DiskSize,LogSize | |
 (DiskSize:8388608;LogSize:262144),
 | 
greater than 8MB, 256KB log | 
 (DiskSize:16777216;LogSize:262144),
 | 
greater than 16MB, 256KB log | 
 (DiskSize:33554432;LogSize:524288),
 | 
greater than 32MB, 512KB log (Previously 262144) | 
 (DiskSize:67108864;LogSize:1048576),
 | 
greater than 64MB, 1MB log (Previously 524288) | 
 (DiskSize:134217728;LogSize:2097152),
 | 
greater than 128MB, 2MB log (Previously 1048576) | 
 (DiskSize:268435456;LogSize:2097152),
 | 
greater than 256MB, 2MB log | 
 (DiskSize:536870912;LogSize:4194304),
 | 
greater than 512MB, 4MB log | 
 (DiskSize:1073741824;LogSize:8388608),
 | 
greater than 1GB, 8MB log | 
 (DiskSize:2147483648;LogSize:16777216),
 | 
greater than 2GB, 16MB log | 
 (DiskSize:4294967296;LogSize:33554432),
 | 
greater than 4GB, 32MB log | 
 (DiskSize:8589934592;LogSize:67108864));
 | 
greater than 8GB, 64MB log | 
  
 ntfs*LogSize  ntfsMaxLogSize = 8;
 | 
|
ntfsLogSizes:array[0..ntfsMaxLogSize] of TNTFSLogSize = (
 | |
| DiskSize,LogSize | |
 (DiskSize:0;LogSize:2097152),
 | 
less than 128MB, 2MB log | 
 (DiskSize:134217728;LogSize:4194304),
 | 
greater than 128MB, 4MB log | 
 (DiskSize:268435456;LogSize:5242880),
 | 
greater than 256MB, 5MB log | 
 (DiskSize:536870912;LogSize:6291456),
 | 
greater than 512MB, 6MB log | 
 (DiskSize:805306368;LogSize:7340032),
 | 
greater than 768MB, 7MB log | 
 (DiskSize:1073741824;LogSize:8388608),
 | 
greater than 1GB, 8MB log | 
 (DiskSize:2147483648;LogSize:16777216),
 | 
greater than 2GB, 16MB log | 
 (DiskSize:4294967296;LogSize:33554432),
 | 
greater than 4GB, 32MB log | 
 (DiskSize:8589934592;LogSize:67108864));
 | 
greater than 8GB, 64MB log | 
  
 ntfsMftStart*  ntfsMftStartCluster = 786432;
 | 
|
 ntfsMftCutoverCount = 4194304;
 | 
4194304 * 4096 = 16GB (The point at which the MFT becomes fixed in location) | 
 
 ntfsFileSize*  ntfsFileSizeMft = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsFileSizeMftMirr = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsFileSizeLogFile = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsFileSizeVolume = 0;
 | 
Constant size | 
 ntfsFileSize12AttrDef = 36864;
 | 
Constant size | 
 ntfsFileSize30AttrDef = 2560;
 | 
Constant size | 
 ntfsFileSize31AttrDef = 2560;
 | 
Constant size | 
 ntfsFileSizeRoot = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsFileSizeBitmap = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsFileSizeBoot = 8192;
 | 
Constant size | 
 ntfsFileSizeBadClus = 0;
 | 
Starting size | 
 ntfsFileSizeSecure = 0;
 | 
Constant size | 
 ntfsFileSizeUpCase = 131072;
 | 
Constant size | 
 ntfsFileSizeExtend = 0;
 | 
Constant size | 
 ntfsFileSizeObjId = 0;
 | 
Constant size | 
 ntfsFileSizeQuota = 0;
 | 
Constant size | 
 ntfsFileSizeReparse = 0;
 | 
Constant size | 
 ntfsFileSizeUsnJrnl = ntfsUnknownCluster;
 | 
Variable size | 
 
 ntfsStreamSize*  ntfsStreamSizeSecurity = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsStreamSizeBadClus = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsStreamSizeMountMgr = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsStreamSizeJournal = ntfsUnknownCluster;
 | 
Variable size | 
 ntfsStreamSizeJrnlMax = ntfsUnknownCluster;
 | 
Variable size | 
 
 ntfs*HeaderSize*  ntfsFileRecord12Size = 42;
 | 
Constant size | 
 ntfsFileRecord31Size = 48;
 | 
Constant size | 
 ntfsIndexRecordSize = 24;
 | 
Constant size | 
 ntfsIndexHeaderSize = 16;
 | 
Constant size | 
 ntfsIndexEntrySize = 16;
 | 
Minimum size | 
 ntfsAttributeTypeSize = 4;
 | 
Constant size | 
 ntfsAttributeHeaderSize = 16;
 | 
Minimum size | 
 ntfsResidentHeaderSize = 24;
 | 
Minimum size | 
 ntfsNonResidentHeaderSize = 64;
 | 
Minimum size | 
 ntfsCompressedHeaderSize = 72;
 | 
Minimum size | 
 ntfsAttribute*Size | Minimum sizes | |
 ntfsStandardInformation12Size = 48;
 | 
Constant size | 
 ntfsStandardInformation30Size = 72;
 | 
Constant size | 
 ntfsAttributeListSize = 0;
 | 
Variable size | 
 ntfsFileNameSize = 66;
 | 
Minimum size | 
 ntfsObjectIdSize = 16;
 | 
Minimum size | 
 ntfsObjectIdSize2 = 32;
 | 
Minimum size | 
 ntfsObjectIdSize3 = 48;
 | 
Minimum size | 
 ntfsObjectIdSize4 = 64;
 | 
Minimum size | 
 ntfsVolumeVersionSize = 8;
 | 
Constant size | 
 ntfsSecurityDescriptorSize = 0;
 | 
Variable size | 
 ntfsVolumeNameSize = 0;
 | 
Variable size | 
 ntfsVolumeInformationSize = 12;
 | 
Constant size | 
 ntfsDataSize = 0;
 | 
Variable size | 
 ntfsIndexRootSize = 16;
 | 
Constant size | 
 ntfsIndexAllocationSize = 0;
 | 
Variable size | 
 ntfsBitmapSize = 0;
 | 
Variable size | 
 ntfsReparsePointSize = 8;
 | 
Minimum size | 
 ntfsReparsePointMicrosoftSize = 8;
 | 
Minimum size | 
 ntfsReparsePointOtherSize = 24;
 | 
Minimum size | 
 ntfsSymbolicLinkSize = 0;
 | 
Variable size | 
 ntfsExtendedAttrInformationSize = 8;
 | 
Constant size | 
 ntfsExtendedAttrSize = 0;
 | 
Variable size | 
 ntfsPropertySetSize = 0;
 | 
Variable size | 
 ntfsLoggedUtilityStreamSize = 0;
 | 
Variable size | 
 ntfsUnknownSize = 0;
 | 
Variable size | 
 ntfsEndSize = 4;
 | 
Constant size | 
 
 ntfs*Size | Minimum sizes | |
 ntfsRunSize = 1;
 | 
Minimum size | 
 ntfsItemSize = 26;
 | 
Minimum size | 
 ntfsObjIdSize = 56;
 | 
Constant size | 
 ntfsQuotaSize = 48;
 | 
Minimum size | 
 ntfsOwnerSize = 4;
 | 
Constant size | 
 ntfsUpCaseSize = 131072;
 | 
Constant size | 
 ntfsAttrDefSize = 160;
 | 
Constant size | 
 ntfsReparseSize = 12;
 | 
Minimum size | 
 ntfsExtendedSize = 8;
 | 
Minimum size | 
 ntfsSecuritySize = 20;
 | 
Minimum size | 
 ntfsSidSize = 8;
 | 
Minimum size | 
 ntfsAclSize = 8;
 | 
Minimum size | 
 ntfsAceSize = 8;
 | 
Minimum size | 
 ntfsSecurityItemSize = 40;
 | 
Minimum size (Includes ntfsSecuritySize) | 
 ntfsSecurityIdSize = 20;
 | 
Minimum size | 
 ntfsSecurityHashSize = 20;
 | 
Minimum size (Previously 24 - Modified to remove Padding) | 
 
 ntfs*KeySize | Minimum sizes | |
 ntfsObjIdKeySize = 16;
 | 
Minimum size | 
 ntfsQuotaKeySize = 4;
 | 
Minimum size | 
 ntfsOwnerKeySize = 8;
 | 
Minimum size (Includes ntfsSidSize) | 
 ntfsSecurityIdKeySize = 4;
 | 
Minimum size | 
 ntfsSecurityHashKeySize = 8;
 | 
Minimum size | 
 ntfsReparseKeySize = 12;
 | 
Constant size (Not 16 even though CollateType is GUID) | 
 ntfsUpdateSequenceSize*  ntfsUpdateSequenceSize = 512;
 | 
Constant size (Always 512 regardless of the sector size) | 
 ntfs*SectorCount | Used for NTFS formatting (Fixed Disk only) | |
 ntfs12MaxSectorCount = 4;
 | 
|
ntfs12SectorCounts:array[0..ntfs12MaxSectorCount] of TNTFSSectorCount = (
 | |
| SectorCount,SectorsPerCluster | |
 (SectorCount:16384;SectorsPerCluster:0),
 | 
up to 8 MB, the 0 value for SectorsPerCluster trips an error | 
 (SectorCount:1048576;SectorsPerCluster:1),
 | 
up to 512 MB, sector size cluster | 
 (SectorCount:2097152;SectorsPerCluster:2),
 | 
up to 1 GB, 1k cluster | 
 (SectorCount:4194304;SectorsPerCluster:4),
 | 
up to 2 GB, 2k cluster | 
 (SectorCount:$FFFFFFFF;SectorsPerCluster:8));
 | 
greater than 2 GB, 4k cluster | 
 ntfs30MaxSectorCount = 4;
 | 
|
ntfs30SectorCounts:array[0..ntfs30MaxSectorCount] of TNTFSSectorCount = (
 | |
| SectorCount,SectorsPerCluster | |
 (SectorCount:16384;SectorsPerCluster:0),
 | 
up to 8 MB, the 0 value for SectorsPerCluster trips an error | 
 (SectorCount:1048576;SectorsPerCluster:1),
 | 
up to 512 MB, sector size cluster | 
 (SectorCount:2097152;SectorsPerCluster:2),
 | 
up to 1 GB, 1k cluster | 
 (SectorCount:4194304;SectorsPerCluster:4),
 | 
up to 2 GB, 2k cluster | 
 (SectorCount:$FFFFFFFF;SectorsPerCluster:8));
 | 
greater than 2 GB, 4k cluster | 
Type definitions
NTFS attribute definition
TNTFSAttrDefine = record
| Note: Not Packed | |
 AttributeType:LongWord;
 | 
|
 AttributeName:String;
 | 
|
 AttrDefFlags:LongWord;
 | 
|
 MinimumSize:Int64;
 | 
|
 MaximumSize:Int64;
 | 
|
NTFS uppercase conversion
TNTFSUpcaseConvert = record
| Note: Not Packed | |
 Count:Word;
 | 
|
 Value:Word;
 | 
|
NTFS sector count
TNTFSSectorCount = record
| Note: Not Packed (Fixed Disk only) | |
 SectorCount:LongWord;
 | 
Based on 512 bytes per sector only | 
 SectorsPerCluster:LongWord;
 | 
|
NTFS log size
TNTFSLogSize = record
| Note: Not Packed | |
 DiskSize:Int64;
 | 
|
 LogSize:Int64;
 | 
|
NTFS default SID
PNTFSDefaultSid = ^TNTFSDefaultSid;
TNTFSDefaultSid = record
| Note: Not Packed | |
 Sid:TWellKnownSidType;
 | 
|
NTFS default access control entry
TNTFSDefaultAce = record
| Note: Not Packed | |
 AceType:Byte;
 | 
|
 AceFlags:Byte;
 | 
|
 AceSize:Word;
 | 
|
 Mask:LongWord;
 | 
|
 Sid:TWellKnownSidType;
 | 
|
NTFS default access control list
TNTFSDefaultAcl = record
| Note: Not Packed | |
 AclRevision:Byte;
 | 
|
 AclSize:Word;
 | 
|
 AceCount:Word;
 | 
|
 Aces:array[0..7] of TNTFSDefaultAce;
 | 
|
NTFS default descriptor
PNTFSDefaultDescriptor = ^TNTFSDefaultDescriptor;
TNTFSDefaultDescriptor = record
| Note: Not Packed | |
 Size:LongWord;
 | 
|
 Revision:Byte;
 | 
Revision | 
 Control:Word;
 | 
Control Flags | 
 OwnerOffset:LongWord;
 | 
Offset to Owner SID | 
 GroupOffset:LongWord;
 | 
Offset to Group SID | 
 SaclOffset:LongWord;
 | 
Offset to SACL | 
 DaclOffset:LongWord;
 | 
Offset to DACL | 
 Owner:TWellKnownSidType;
 | 
|
 Group:TWellKnownSidType;
 | 
|
 Sacl:TNTFSDefaultAcl;
 | 
|
 Dacl:TNTFSDefaultAcl;
 | 
|
 
Public variables
NTFS specific variables
 SecurityHashPadding:LongWord = ntfsSecurityHashPadding;
 | 
Function declarations
None defined
Return to Unit Reference