mirror of
https://github.com/reactos/reactos.git
synced 2024-10-04 00:13:57 +00:00
[NTFS]
Add missing defines about INDEX_ROOT attributes and collation rules. Implemented their support in NtfsDumpFileAttributes(). Sources: http://ftp.kolibrios.org/users/Asper/docs/NTFS/ntfsdoc.html#attribute_index_root and Linux kernel. svn path=/trunk/; revision=64232
This commit is contained in:
parent
8fc3f61465
commit
d907725b5d
|
@ -161,6 +161,23 @@ NtfsDumpVolumeInformationAttribute(PATTRIBUTE Attribute)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static
|
||||||
|
VOID
|
||||||
|
NtfsDumpIndexRootAttribute(PATTRIBUTE Attribute)
|
||||||
|
{
|
||||||
|
PRESIDENT_ATTRIBUTE ResAttr;
|
||||||
|
PINDEX_ROOT_ATTRIBUTE IndexRootAttr;
|
||||||
|
|
||||||
|
ResAttr = (PRESIDENT_ATTRIBUTE)Attribute;
|
||||||
|
IndexRootAttr = (PINDEX_ROOT_ATTRIBUTE)((ULONG_PTR)ResAttr + ResAttr->ValueOffset);
|
||||||
|
|
||||||
|
if (IndexRootAttr->AttributeType == AttributeFileName)
|
||||||
|
ASSERT(IndexRootAttr->CollationRule == COLLATION_FILE_NAME);
|
||||||
|
|
||||||
|
DbgPrint(" $INDEX_ROOT (%uB, %u) ", IndexRootAttr->SizeOfEntry, IndexRootAttr->ClustersPerIndexRecord);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static
|
static
|
||||||
VOID
|
VOID
|
||||||
NtfsDumpAttribute (PATTRIBUTE Attribute)
|
NtfsDumpAttribute (PATTRIBUTE Attribute)
|
||||||
|
@ -207,7 +224,7 @@ NtfsDumpAttribute (PATTRIBUTE Attribute)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AttributeIndexRoot:
|
case AttributeIndexRoot:
|
||||||
DbgPrint(" $INDEX_ROOT ");
|
NtfsDumpIndexRootAttribute(Attribute);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AttributeIndexAllocation:
|
case AttributeIndexAllocation:
|
||||||
|
|
|
@ -186,6 +186,14 @@ typedef enum
|
||||||
AttributeLoggedUtilityStream = 0x100
|
AttributeLoggedUtilityStream = 0x100
|
||||||
} ATTRIBUTE_TYPE, *PATTRIBUTE_TYPE;
|
} ATTRIBUTE_TYPE, *PATTRIBUTE_TYPE;
|
||||||
|
|
||||||
|
#define COLLATION_BINARY 0x00
|
||||||
|
#define COLLATION_FILE_NAME 0x01
|
||||||
|
#define COLLATION_UNICODE_STRING 0x02
|
||||||
|
#define COLLATION_NTOFS_ULONG 0x10
|
||||||
|
#define COLLATION_NTOFS_SID 0x11
|
||||||
|
#define COLLATION_NTOFS_SECURITY_HASH 0x12
|
||||||
|
#define COLLATION_NTOFS_ULONGS 0x13
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -303,6 +311,15 @@ typedef struct
|
||||||
WCHAR Name[1];
|
WCHAR Name[1];
|
||||||
} FILENAME_ATTRIBUTE, *PFILENAME_ATTRIBUTE;
|
} FILENAME_ATTRIBUTE, *PFILENAME_ATTRIBUTE;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
ULONG AttributeType;
|
||||||
|
ULONG CollationRule;
|
||||||
|
ULONG SizeOfEntry;
|
||||||
|
UCHAR ClustersPerIndexRecord;
|
||||||
|
UCHAR Padding[3];
|
||||||
|
} INDEX_ROOT_ATTRIBUTE, *PINDEX_ROOT_ATTRIBUTE;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
ULONGLONG Unknown1;
|
ULONGLONG Unknown1;
|
||||||
|
|
Loading…
Reference in a new issue