diff options
author | Colin Finck <colin@reactos.org> | 2021-06-05 17:01:57 +0300 |
---|---|---|
committer | Colin Finck <colin@reactos.org> | 2021-06-05 17:01:57 +0300 |
commit | 6d174c7910237a592cf811ab5d406599130401d6 (patch) | |
tree | 3e6126a3d03b4a010aa43013e9f12351091a608e /src/ntfs.rs | |
parent | 4d4357d22497943e535fe16ca299d2ff6644f431 (diff) |
Add `Lcn`, `Vcn` to simplify cluster calculations and make them typesafe
Diffstat (limited to 'src/ntfs.rs')
-rw-r--r-- | src/ntfs.rs | 9 |
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. |