pub struct WindowsSectionObject<'a, Driver>{ /* private fields */ }Expand description
A Windows section object.
A section object in Windows is a kernel structure used for memory mapping and shared memory management. It allows multiple processes to share memory regions or map files into their address space.
§Implementation Details
Corresponds to _SECTION_OBJECT or _SECTION.
Implementations§
Source§impl<'a, Driver> WindowsSectionObject<'a, Driver>
impl<'a, Driver> WindowsSectionObject<'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 section object.
Sourcepub fn start(&self) -> Result<Va, VmiError>
pub fn start(&self) -> Result<Va, VmiError>
Returns the starting address of the section.
§Implementation Details
Corresponds to _SECTION_OBJECT.StartingVa or _SECTION.StartingVpn
shifted left by 12 bits.
Sourcepub fn end(&self) -> Result<Va, VmiError>
pub fn end(&self) -> Result<Va, VmiError>
Returns the ending address of the section (exclusive).
§Implementation Details
Corresponds to _SECTION_OBJECT.EndingVa or _SECTION.EndingVpn
incremented by 1 and shifted left by 12 bits.
Sourcepub fn size(&self) -> Result<u64, VmiError>
pub fn size(&self) -> Result<u64, VmiError>
Returns the size of the section.
§Implementation Details
Corresponds to _SECTION_OBJECT.SizeOfSegment or _SECTION.SizeOfSection.
Sourcepub fn flags(&self) -> Result<u64, VmiError>
pub fn flags(&self) -> Result<u64, VmiError>
Returns the flags of the section.
§Implementation Details
Corresponds to _SECTION.Flags or _SEGMENT_OBJECT.MmSectionFlags.
Sourcepub fn file_object(
&self,
) -> Result<Option<WindowsFileObject<'a, Driver>>, VmiError>
pub fn file_object( &self, ) -> Result<Option<WindowsFileObject<'a, Driver>>, VmiError>
Returns the file object of the section.
§Implementation Details
Corresponds to _SECTION.ControlArea.FilePointer or
_SEGMENT_OBJECT.ControlArea.FilePointer.
Trait Implementations§
Source§impl<'a, Driver> From<WindowsSectionObject<'a, Driver>> for WindowsObject<'a, Driver>
impl<'a, Driver> From<WindowsSectionObject<'a, Driver>> for WindowsObject<'a, Driver>
Source§fn from(value: WindowsSectionObject<'a, Driver>) -> Self
fn from(value: WindowsSectionObject<'a, Driver>) -> Self
Source§impl<'a, Driver> FromWindowsObject<'a, Driver> for WindowsSectionObject<'a, Driver>
impl<'a, Driver> FromWindowsObject<'a, Driver> for WindowsSectionObject<'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 WindowsSectionObject<'_, Driver>
impl<Driver> VmiVa for WindowsSectionObject<'_, Driver>
Auto Trait Implementations§
impl<'a, Driver> !Freeze for WindowsSectionObject<'a, Driver>
impl<'a, Driver> !RefUnwindSafe for WindowsSectionObject<'a, Driver>
impl<'a, Driver> !Send for WindowsSectionObject<'a, Driver>
impl<'a, Driver> !Sync for WindowsSectionObject<'a, Driver>
impl<'a, Driver> !UnwindSafe for WindowsSectionObject<'a, Driver>
impl<'a, Driver> Unpin for WindowsSectionObject<'a, Driver>
impl<'a, Driver> UnsafeUnpin for WindowsSectionObject<'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.