pub struct WindowsDirectoryObject<'a, Driver>{ /* private fields */ }Expand description
A Windows directory object.
A directory object is a kernel-managed container that stores named objects such as events, mutexes, symbolic links, and device objects.
§Implementation Details
Corresponds to _OBJECT_DIRECTORY.
Implementations§
Source§impl<'a, Driver> WindowsDirectoryObject<'a, Driver>
impl<'a, Driver> WindowsDirectoryObject<'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 directory object.
Sourcepub fn iter(
&self,
) -> Result<impl Iterator<Item = Result<WindowsObject<'a, Driver>, VmiError>> + use<'a, Driver>, VmiError>
pub fn iter( &self, ) -> Result<impl Iterator<Item = Result<WindowsObject<'a, Driver>, VmiError>> + use<'a, Driver>, VmiError>
Iterates over the objects in the directory.
Sourcepub fn lookup(
&self,
path: impl AsRef<str>,
) -> Result<Option<WindowsObject<'a, Driver>>, VmiError>
pub fn lookup( &self, path: impl AsRef<str>, ) -> Result<Option<WindowsObject<'a, Driver>>, VmiError>
Resolves a relative path to a descendant object.
Splits path on \\ and descends one component at a time. Empty
segments are ignored. Name comparison is ASCII-case-insensitive.
Each intermediate component must resolve to a Directory object.
Returns Ok(None) if a component does not exist or an intermediate
is some other object type. The final component may be any type. An
empty path returns this directory.
Does not follow SymbolicLink objects.
Sourcepub fn child(
&self,
name: impl AsRef<str>,
) -> Result<Option<WindowsObject<'a, Driver>>, VmiError>
pub fn child( &self, name: impl AsRef<str>, ) -> Result<Option<WindowsObject<'a, Driver>>, VmiError>
Returns the direct entry with the given name, if any.
name is treated as a single component. It is not split on \\,
so child("Device\\HarddiskVolume4") will never match a real entry -
use lookup for path traversal.
Walks every hash bucket and matches names with ASCII-case-insensitive comparison.
Per-bucket read errors do not abort the search. A paged-out bucket head or chain-link page would otherwise mask matches in other buckets. Errors are skipped.
Trait Implementations§
Source§impl<'a, Driver> From<WindowsDirectoryObject<'a, Driver>> for WindowsObject<'a, Driver>
impl<'a, Driver> From<WindowsDirectoryObject<'a, Driver>> for WindowsObject<'a, Driver>
Source§fn from(value: WindowsDirectoryObject<'a, Driver>) -> Self
fn from(value: WindowsDirectoryObject<'a, Driver>) -> Self
Source§impl<'a, Driver> FromWindowsObject<'a, Driver> for WindowsDirectoryObject<'a, Driver>
impl<'a, Driver> FromWindowsObject<'a, Driver> for WindowsDirectoryObject<'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 WindowsDirectoryObject<'_, Driver>
impl<Driver> VmiVa for WindowsDirectoryObject<'_, Driver>
Auto Trait Implementations§
impl<'a, Driver> !RefUnwindSafe for WindowsDirectoryObject<'a, Driver>
impl<'a, Driver> !Send for WindowsDirectoryObject<'a, Driver>
impl<'a, Driver> !Sync for WindowsDirectoryObject<'a, Driver>
impl<'a, Driver> !UnwindSafe for WindowsDirectoryObject<'a, Driver>
impl<'a, Driver> Freeze for WindowsDirectoryObject<'a, Driver>
impl<'a, Driver> Unpin for WindowsDirectoryObject<'a, Driver>
impl<'a, Driver> UnsafeUnpin for WindowsDirectoryObject<'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.