pub struct Prefetch { /* private fields */ }
Expand description
A Prefetch file reader and parser.
§Basic Example
use libprefetch::Prefetch;
let file = std::fs::File::open("assets/WUAUCLT.EXE-399A8E72.pf").unwrap();
let prefetch = Prefetch::new(file).unwrap();
// Or with a path
let prefetch =
Prefetch::from_path("assets/WUAUCLT.EXE-399A8E72.pf").unwrap();
Implementations§
Source§impl Prefetch
impl Prefetch
Sourcepub fn version(&self) -> FormatVersion
pub fn version(&self) -> FormatVersion
Returns the version of the Prefetch file.
Sourcepub fn last_execution_time(&self) -> u64
pub fn last_execution_time(&self) -> u64
Returns the last execution time, in FILETIME format
Sourcepub fn execution_counter(&self) -> usize
pub fn execution_counter(&self) -> usize
Returns the execution counter (how many times the exe was run).
Sourcepub fn metrics(&self) -> Result<MetricIterator<'_>, Error>
pub fn metrics(&self) -> Result<MetricIterator<'_>, Error>
Returns an Iterator for file metrics.
§Example
use libprefetch::Prefetch;
let prefetch =
Prefetch::from_path("assets/WUAUCLT.EXE-399A8E72.pf").unwrap();
// Iterate over metrics
for metric in prefetch.metrics().unwrap() {
println!("Loaded file by the exe: {}", metric.filename());
}
Sourcepub fn trace(&self) -> Result<TraceIterator<'_>, Error>
pub fn trace(&self) -> Result<TraceIterator<'_>, Error>
Returns an Iterator for the trace chains.
§Example
use libprefetch::Prefetch;
let prefetch =
Prefetch::from_path("assets/WUAUCLT.EXE-399A8E72.pf").unwrap();
// Iterate over the chain
for item in prefetch.trace().unwrap() {
println!("Trace #{}, bytes loaded:: {}", item.id(), item.load_count());
}
Sourcepub fn volumes(&self) -> Result<VolumeIterator<'_>, Error>
pub fn volumes(&self) -> Result<VolumeIterator<'_>, Error>
Returns an Iterator for the volumes.
§Example
use libprefetch::Prefetch;
let prefetch =
Prefetch::from_path("assets/WUAUCLT.EXE-399A8E72.pf").unwrap();
// Iterates over the volumes
println!(" ===== Volumes ===== ");
for volume in prefetch.volumes().unwrap() {
println!("Volume #{}:", volume.id());
println!(" Path: {}", volume.device_path());
println!(" Creation time: {}", volume.creation_time());
println!(" Serial number: {}", volume.serial_number());
println!(" Directories: ");
for directory in volume.directories().unwrap() {
println!(" {}", directory);
}
}
Auto Trait Implementations§
impl Freeze for Prefetch
impl !RefUnwindSafe for Prefetch
impl !Send for Prefetch
impl !Sync for Prefetch
impl Unpin for Prefetch
impl !UnwindSafe for Prefetch
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more