diff options
Diffstat (limited to 'src/ntfsx.h')
-rw-r--r-- | src/ntfsx.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/ntfsx.h b/src/ntfsx.h index 04ebabd..2c1054c 100644 --- a/src/ntfsx.h +++ b/src/ntfsx.h @@ -52,7 +52,7 @@ typedef struct _ntfsx_cluster } ntfsx_cluster; -bool ntfsx_cluster_reserve(ntfsx_cluster* clus, partitioninfo* info); +void ntfsx_cluster_reserve(ntfsx_cluster* clus, partitioninfo* info); bool ntfsx_cluster_read(ntfsx_cluster* clus, partitioninfo* info, uint64 begSector, int dd); void ntfsx_cluster_release(ntfsx_cluster* clus); @@ -73,7 +73,6 @@ ntfs_attribheader* ntfsx_attribute_header(ntfsx_attribute* attr); void* ntfsx_attribute_getresidentdata(ntfsx_attribute* attr); uint32 ntfsx_attribute_getresidentsize(ntfsx_attribute* attr); ntfsx_datarun* ntfsx_attribute_getdatarun(ntfsx_attribute* attr); -bool ntfsx_attribute_next(ntfsx_attribute* attr, uint32 attrType); @@ -86,12 +85,30 @@ typedef struct _ntfsx_record ntfsx_record; ntfsx_record* ntfsx_record_alloc(partitioninfo* info); +ntfsx_cluster* ntfsx_record_cluster(ntfsx_record* record); void ntfsx_record_free(ntfsx_record* record); bool ntfsx_record_read(ntfsx_record* record, uint64 begSector, int dd); ntfs_recordheader* ntfsx_record_header(ntfsx_record* record); ntfsx_attribute* ntfsx_record_findattribute(ntfsx_record* record, uint32 attrType, int dd); +/* used as a heap based object */ +typedef struct _ntfsx_attrib_enum +{ + ntfs_attribheader* _attrhead; /* The last attribute examined */ + ntfs_attriblistrecord* _listrec; /* The last attr list record examined */ + unsigned char _flags; /* Whether to search through the list first */ + uint32 type; /* The type we're going for */ +} +ntfsx_attrib_enum; + +ntfsx_attrib_enum* ntfsx_attrib_enum_alloc(uint32 type, bool normal); +ntfsx_attribute* ntfsx_attrib_enum_all(ntfsx_attrib_enum* attrenum, ntfsx_record* record); +ntfsx_attribute* ntfsx_attrib_enum_inline(ntfsx_attrib_enum* attrenum, ntfsx_record* record); +ntfsx_attribute* ntfsx_attrib_enum_list(ntfsx_attrib_enum* attrenum, ntfsx_record* record); +void ntfsx_attrib_enum_free(ntfsx_attrib_enum* attrenum); + + /* used as a stack based object */ struct _ntfsx_mftmap_block; |