summaryrefslogtreecommitdiff
path: root/src/ntfsx.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ntfsx.h')
-rw-r--r--src/ntfsx.h21
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;