Output runlist for DATA attribute in verbose mode
(Logical change 1.435)edge.strict_endians
parent
d0c18bfb7d
commit
ff0334f3c5
|
@ -818,7 +818,7 @@ static void ntfs_dump_attr_volume_information(ATTR_RECORD *attr)
|
|||
*
|
||||
* dump some info about the data attribute
|
||||
*/
|
||||
static void ntfs_dump_attr_data(ATTR_RECORD *attr)
|
||||
static void ntfs_dump_attr_data(ATTR_RECORD *attr, ntfs_volume *vol)
|
||||
{
|
||||
printf("Dumping attribute $DATA (0x80) related info\n");
|
||||
|
||||
|
@ -861,6 +861,23 @@ static void ntfs_dump_attr_data(ATTR_RECORD *attr)
|
|||
} else {
|
||||
printf("\tNot Compressed\n");
|
||||
}
|
||||
|
||||
if (opts.verbose) {
|
||||
runlist *rl = ntfs_mapping_pairs_decompress(vol, attr, 0);
|
||||
if (rl) {
|
||||
printf ("\tRunlist:\tVCN\t\tLCN\t\tLength\n");
|
||||
runlist *rlc = rl;
|
||||
while (rlc->length) {
|
||||
printf ("\t\t\t%lld\t\t%lld\t\t%lld\n",
|
||||
rlc->vcn, rlc->lcn, rlc->length);
|
||||
rlc++;
|
||||
}
|
||||
free (rl);
|
||||
} else {
|
||||
Eprintf("ntfsinfo error: could not decompress runlist\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
printf("\tIs resident? \t\t Yes\n");
|
||||
printf("\tData size:\t\t %u\n",
|
||||
|
@ -1276,7 +1293,7 @@ static void ntfs_dump_file_attributes(ntfs_inode *inode)
|
|||
ntfs_dump_attr_volume_information(ctx->attr);
|
||||
break;
|
||||
case AT_DATA:
|
||||
ntfs_dump_attr_data(ctx->attr);
|
||||
ntfs_dump_attr_data(ctx->attr, inode->vol);
|
||||
break;
|
||||
case AT_INDEX_ROOT:
|
||||
ntfs_dump_attr_index_root(ctx->attr);
|
||||
|
|
Loading…
Reference in New Issue