Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/ntfs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Finck <colin@reactos.org>2021-06-05 17:01:57 +0300
committerColin Finck <colin@reactos.org>2021-06-05 17:01:57 +0300
commit6d174c7910237a592cf811ab5d406599130401d6 (patch)
tree3e6126a3d03b4a010aa43013e9f12351091a608e /src/ntfs.rs
parent4d4357d22497943e535fe16ca299d2ff6644f431 (diff)
Add `Lcn`, `Vcn` to simplify cluster calculations and make them typesafe
Diffstat (limited to 'src/ntfs.rs')
-rw-r--r--src/ntfs.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/ntfs.rs b/src/ntfs.rs
index c14dc1f..ccd6ae9 100644
--- a/src/ntfs.rs
+++ b/src/ntfs.rs
@@ -40,18 +40,21 @@ impl Ntfs {
let cluster_size = bpb.cluster_size()?;
let sector_size = bpb.sector_size();
let size = bpb.total_sectors() * sector_size as u64;
- let mft_position = bpb.mft_lcn() * cluster_size as u64;
+ let mft_position = 0;
let file_record_size = bpb.file_record_size()?;
let serial_number = bpb.serial_number();
- Ok(Self {
+ let mut ntfs = Self {
cluster_size,
sector_size,
size,
mft_position,
file_record_size,
serial_number,
- })
+ };
+ ntfs.mft_position = bpb.mft_lcn().position(&ntfs)?;
+
+ Ok(ntfs)
}
/// Returns the size of a single cluster, in bytes.