// // Constant definitions // #define LowPart 0x0 #define HighPart 0x4 #define MASTER_FILE_TABLE_NUMBER 0x0 #define MASTER_FILE_TABLE2_NUMBER 0x1 #define LOG_FILE_NUMBER 0x2 #define VOLUME_DASD_NUMBER 0x3 #define ATTRIBUTE_DEF_TABLE_NUMBER 0x4 #define ROOT_FILE_NAME_INDEX_NUMBER 0x5 #define BIT_MAP_FILE_NUMBER 0x6 #define BOOT_FILE_NUMBER 0x7 #define BAD_CLUSTER_FILE_NUMBER 0x8 #define QUOTA_TABLE_NUMBER 0x9 #define UPCASE_TABLE_NUMBER 0xa #define $STANDARD_INFORMATION 0x10 #define $ATTRIBUTE_LIST 0x20 #define $FILE_NAME 0x30 #define $OBJECT_ID 0x40 #define $SECURITY_DESCRIPTOR 0x50 #define $VOLUME_NAME 0x60 #define $VOLUME_INFORMATION 0x70 #define $DATA 0x80 #define $INDEX_ROOT 0x90 #define $INDEX_ALLOCATION 0xa0 #define $BITMAP 0xb0 #define $SYMBOLIC_LINK 0xc0 #define $EA_INFORMATION 0xd0 #define $EA 0xe0 #define $FIRST_USER_DEFINED_ATTRIBUTE 0x100 #define $END 0xffffffff #define SEQUENCE_NUMBER_STRIDE 0x200 #define REF_SegmentNumberLowPart 0x0 #define REF_SegmentNumberHighPart 0x4 #define REF_SequenceNumber 0x6 #define MSH_Signature 0x0 #define MSH_UpdateSequenceArrayOffset 0x4 #define MSH_UpdateSequenceArraySize 0x6 #define FRS_MultiSectorHeader 0x0 #define FRS_Lsn 0x8 #define FRS_SequenceNumber 0x10 #define FRS_ReferenceCount 0x12 #define FRS_FirstAttributeOffset 0x14 #define FRS_Flags 0x16 #define FRS_FirstFreeByte 0x18 #define FRS_BytesAvailable 0x1c #define FRS_BaseFileRecordSegment 0x20 #define FRS_NextAttributeInstance 0x28 #define FRS_UpdateArrayForCreateOnly 0x2a #define FILE_RECORD_SEGMENT_IN_USE 0x1 #define FILE_FILE_NAME_INDEX_PRESENT 0x2 #define ATTR_TypeCode 0x0 #define ATTR_RecordLength 0x4 #define ATTR_FormCode 0x8 #define ATTR_NameLength 0x9 #define ATTR_NameOffset 0xa #define ATTR_Flags 0xc #define ATTR_Instance 0xe #define ATTR_Form 0x10 #define RES_ValueLength 0x10 #define RES_ValueOffset 0x14 #define RES_ResidentFlags 0x16 #define RES_Reserved 0x17 #define NONRES_LowestVcn 0x10 #define NONRES_HighestVcn 0x18 #define NONRES_MappingPairOffset 0x20 #define NONRES_CompressionUnit 0x22 #define NONRES_Reserved 0x23 #define NONRES_AllocatedLength 0x28 #define NONRES_FileSize 0x30 #define NONRES_ValidDataLength 0x38 #define NONRES_TotalAllocated 0x40 #define RESIDENT_FORM 0x0 #define NONRESIDENT_FORM 0x1 #define ATTRIBUTE_FLAG_COMPRESSION_MASK 0xff #define ATTRLIST_AttributeTypeCode 0x0 #define ATTRLIST_RecordLength 0x4 #define ATTRLIST_AttributeNameLength 0x6 #define ATTRLIST_AttributeNameOffset 0x7 #define ATTRLIST_LowestVcn 0x8 #define ATTRLIST_SegmentReference 0x10 #define ATTRLIST_Instance 0x18 #define ATTRLIST_AttributeName 0x1a #define FAT_DIRENT_ATTR_READ_ONLY 0x1 #define FAT_DIRENT_ATTR_HIDDEN 0x2 #define FAT_DIRENT_ATTR_SYSTEM 0x4 #define FAT_DIRENT_ATTR_VOLUME_ID 0x8 #define FAT_DIRENT_ATTR_ARCHIVE 0x20 #define FAT_DIRENT_ATTR_DEVICE 0x40 #define DUPINFO_CreationTime 0x0 #define DUPINFO_LastModificationTime 0x8 #define DUPINFO_LastChangeTime 0x10 #define DUPINFO_LastAccessTime 0x18 #define DUPINFO_AllocatedLength 0x20 #define DUPINFO_FileSize 0x28 #define DUPINFO_FileAttributes 0x30 #define DUPINFO_PackedEaSize 0x34 #define DUPINFO_Reserved 0x36 #define FN_ParentDirectory 0x0 #define FN_Info 0x8 #define FN_FileNameLength 0x40 #define FN_Flags 0x41 #define FN_FileName 0x42 #define FILE_NAME_NTFS 0x1 #define FILE_NAME_DOS 0x2 #define FILE_NAME_LINK 0x4 #define IH_FirstIndexEntry 0x0 #define IH_FirstFreeByte 0x4 #define IH_BytesAvailable 0x8 #define IH_Flags 0xc #define IH_Reserved 0xd #define INDEX_NODE 0x1 #define IR_IndexedAttributeType 0x0 #define IR_CollationRule 0x4 #define IR_BytesPerIndexBuffer 0x8 #define IR_BlocksPerIndexBuffer 0xc #define IR_Reserved 0xd #define IR_IndexHeader 0x10 #define IB_MultiSectorHeader 0x0 #define IB_Lsn 0x8 #define IB_ThisBlock 0x10 #define IB_IndexHeader 0x18 #define IB_UpdateSequenceArray 0x28 #define IE_FileReference 0x0 #define IE_Length 0x8 #define IE_AttributeLength 0xa #define IE_Flags 0xc #define IE_Reserved 0xe #define INDEX_ENTRY_NODE 0x1 #define INDEX_ENTRY_END 0x2