get_next_cluster_forDR
2017-03-21 16:38:49 0 举报
`get_next_cluster_forDR` 是一个函数,用于在数据恢复(Data Recovery)过程中确定下一个要处理的簇(Cluster)。该函数接收当前处理的簇作为输入参数,并返回下一个需要处理的簇。在数据恢复过程中,每个簇都包含一部分数据,而该函数的目标是按照一定的顺序逐个处理这些簇,以恢复丢失或损坏的数据。通过调用该函数,可以实现对数据的有序恢复,确保数据的完整性和一致性。
作者其他创作
大纲/内容
否
end
偶数取低位next_cluster=le16(*((uint16_t*)&staticbuffer[offset_o]))&0x0FFF;
是FAT16upart_type==UP_FAT16
是
clearBuffer
start
staticbuffer
右移next_cluster=le16((*((uint16_t*)&staticbuffer[offset_o])))4;
staticbuffer = (unsigned char*)MALLOC(buffer_size);clearBuffer = true;newFile = false;
offset_s=(cluster+cluster/2)/disk_car-sector_size;offset_o=(cluster+cluster/2)%disk_car-sector_size;
计算该簇在fat的位置p16=(const uint16_t*)staticbuffer;offset_s=cluster/(disk_car-sector_size/2);offset_o=cluster%(disk_car-sector_size/2);
释放free(staticbuffer);
计算该簇在fat的位置p16=(const uint16_t*)staticbuffer;offset_s=cluster/(disk_car-sector_size/4);offset_o=cluster%(disk_car-sector_size/4);
prevOffset_s = offset_s;prevOffset = offset;clearBuffer = true;
是FAT12upart_type==UP_FAT12
计算该簇在fat的位置
offset_s!=prevOffset_s || prevOffset != offset
prevOffset = offset;prevOffset_s = 0;
free(staticbuffer);staticbuffer = NULL;
newFile || staticbuffer==NULL
是FAT32upart_type==UP_FAT32
计算下一簇next_cluster=le16(p16[offset_o]);
为奇数cluster&1)!=0
计算下一簇next_cluster=le32(p32[offset_o]);
收藏
收藏
0 条评论
下一页