pub struct WindowsFileObject<'a, Driver>{ /* private fields */ }Expand description
A Windows file object.
A file object is a kernel structure that represents an open file or device in the Windows Object Manager. It contains metadata about the file, its access permissions, and associated device or volume.
§Implementation Details
Corresponds to _FILE_OBJECT.
Implementations§
Source§impl<'a, Driver> WindowsFileObject<'a, Driver>
impl<'a, Driver> WindowsFileObject<'a, Driver>
Sourcepub fn new(vmi: VmiState<'a, WindowsOs<Driver>>, va: Va) -> Self
pub fn new(vmi: VmiState<'a, WindowsOs<Driver>>, va: Va) -> Self
Creates a new Windows file object.
Sourcepub fn device_object(&self) -> Result<WindowsObject<'a, Driver>, VmiError>
pub fn device_object(&self) -> Result<WindowsObject<'a, Driver>, VmiError>
Returns the device object associated with the file object.
§Implementation Details
Corresponds to _FILE_OBJECT.DeviceObject.
Sourcepub fn full_path(&self) -> Result<String, VmiError>
pub fn full_path(&self) -> Result<String, VmiError>
Constructs the full path of a file from its FILE_OBJECT.
This function first reads the DeviceObject field of the FILE_OBJECT
structure. Then it reads the ObjectNameInfo of the DeviceObject
and its directory. Finally, it concatenates the device directory
name, device name, and file name.
§Implementation Details
Corresponds to _FILE_OBJECT.DeviceObject.NameInfo.Name concatenated
with _FILE_OBJECT.FileName.
Trait Implementations§
Source§impl<'a, Driver> From<WindowsFileObject<'a, Driver>> for WindowsObject<'a, Driver>
impl<'a, Driver> From<WindowsFileObject<'a, Driver>> for WindowsObject<'a, Driver>
Source§fn from(value: WindowsFileObject<'a, Driver>) -> Self
fn from(value: WindowsFileObject<'a, Driver>) -> Self
Source§impl<'a, Driver> FromWindowsObject<'a, Driver> for WindowsFileObject<'a, Driver>
impl<'a, Driver> FromWindowsObject<'a, Driver> for WindowsFileObject<'a, Driver>
Source§fn from_object(
object: WindowsObject<'a, Driver>,
) -> Result<Option<Self>, VmiError>
fn from_object( object: WindowsObject<'a, Driver>, ) -> Result<Option<Self>, VmiError>
WindowsObject into a specific object type.Source§impl<Driver> VmiVa for WindowsFileObject<'_, Driver>
impl<Driver> VmiVa for WindowsFileObject<'_, Driver>
Auto Trait Implementations§
impl<'a, Driver> !RefUnwindSafe for WindowsFileObject<'a, Driver>
impl<'a, Driver> !Send for WindowsFileObject<'a, Driver>
impl<'a, Driver> !Sync for WindowsFileObject<'a, Driver>
impl<'a, Driver> !UnwindSafe for WindowsFileObject<'a, Driver>
impl<'a, Driver> Freeze for WindowsFileObject<'a, Driver>
impl<'a, Driver> Unpin for WindowsFileObject<'a, Driver>
impl<'a, Driver> UnsafeUnpin for WindowsFileObject<'a, Driver>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.