diff --git a/reactos/drivers/filesystems/ntfs/attrib.c b/reactos/drivers/filesystems/ntfs/attrib.c index b29f897863c..5ccbe212f4e 100644 --- a/reactos/drivers/filesystems/ntfs/attrib.c +++ b/reactos/drivers/filesystems/ntfs/attrib.c @@ -175,6 +175,16 @@ NtfsDumpIndexRootAttribute(PATTRIBUTE Attribute) ASSERT(IndexRootAttr->CollationRule == COLLATION_FILE_NAME); DbgPrint(" $INDEX_ROOT (%uB, %u) ", IndexRootAttr->SizeOfEntry, IndexRootAttr->ClustersPerIndexRecord); + + if (IndexRootAttr->Header.Flags == INDEX_ROOT_SMALL) + { + DbgPrint(" (small) "); + } + else + { + ASSERT(IndexRootAttr->Header.Flags == INDEX_ROOT_LARGE); + DbgPrint(" (large) "); + } } diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 59716fcf73e..3782c011a86 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -194,6 +194,8 @@ typedef enum #define COLLATION_NTOFS_SECURITY_HASH 0x12 #define COLLATION_NTOFS_ULONGS 0x13 +#define INDEX_ROOT_SMALL 0x0 +#define INDEX_ROOT_LARGE 0x1 typedef struct { @@ -311,6 +313,15 @@ typedef struct WCHAR Name[1]; } FILENAME_ATTRIBUTE, *PFILENAME_ATTRIBUTE; +typedef struct +{ + ULONG FirstEntryOffset; + ULONG TotalSizeOfEntries; + ULONG AllocatedSize; + UCHAR Flags; + UCHAR Padding[3]; +} INDEX_HEADER_ATTRIBUTE, *PINDEX_HEADER_ATTRIBUTE; + typedef struct { ULONG AttributeType; @@ -318,6 +329,7 @@ typedef struct ULONG SizeOfEntry; UCHAR ClustersPerIndexRecord; UCHAR Padding[3]; + INDEX_HEADER_ATTRIBUTE Header; } INDEX_ROOT_ATTRIBUTE, *PINDEX_ROOT_ATTRIBUTE; typedef struct