#include "attributes.h"
+typedef struct sNTFS_IndexHeader tNTFS_IndexHeader;
+typedef struct sNTFS_IndexEntry_Filename tNTFS_IndexEntry_Filename;
+
struct sNTFS_IndexHeader
{
Uint32 Magic; // = 'INDX' LE
Uint16 UpdateSequenceArray[];
} PACKED;
+#define NTFS_IndexFlag_HasSubNode 0x01
+#define NTFS_IndexFlag_IsLast 0x02
+
+struct sNTFS_IndexEntry
+{
+ Uint64 MFTReference;
+ Uint16 EntrySize;
+ Uint16 MessageLen;
+ Uint16 IndexFlags; // [0]: Points to sub-node, [1]: Last entry in node
+ Uint16 _rsvd;
+} PACKED;
struct sNTFS_IndexEntry_Filename
{
Uint64 MFTReference;
Uint16 EntrySize;
Uint16 FilenameOfs;
- Uint16 IndexFlags;
- Uint16 _flags;
+ Uint16 IndexFlags; // [0]: Points to sub-node, [1]: Last entry in node
+ Uint16 _rsvd;
#if 1
struct sNTFS_Attrib_Filename Filename;
Uint8 FilenameNamespace;
#endif
// Filename
-};
+} PACKED;
#endif