Struct memflow::os::module::ModuleInfo
source · #[repr(C)]pub struct ModuleInfo {
pub address: Address,
pub parent_process: Address,
pub base: Address,
pub size: umem,
pub name: ReprCString,
pub path: ReprCString,
pub arch: ArchitectureIdent,
}Expand description
Module information structure
Fields§
§address: AddressReturns the address of the module header.
Remarks
On Windows this will be the address where the PEB entry is stored.
parent_process: AddressThe base address of the parent process.
Remarks
This field is analog to the ProcessInfo::address field.
base: AddressThe actual base address of this module.
Remarks
The base address is contained in the virtual address range of the process this module belongs to.
size: umemSize of the module
name: ReprCStringName of the module
path: ReprCStringPath of the module
arch: ArchitectureIdentArchitecture of the module
Remarks
Emulated processes often have 2 separate lists of modules, one visible to the emulated
context (e.g. all 32-bit modules in a WoW64 process), and the other for all native modules
needed to support the process emulation. This should be equal to either
ProcessInfo::proc_arch, or ProcessInfo::sys_arch of the parent process.
Trait Implementations§
source§impl Clone for ModuleInfo
impl Clone for ModuleInfo
source§fn clone(&self) -> ModuleInfo
fn clone(&self) -> ModuleInfo
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for ModuleInfo
impl Debug for ModuleInfo
source§impl<'de> Deserialize<'de> for ModuleInfo
impl<'de> Deserialize<'de> for ModuleInfo
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl GetStaticEquivalent_ for ModuleInfo
impl GetStaticEquivalent_ for ModuleInfo
type StaticEquivalent = _static_ModuleInfo
source§impl Serialize for ModuleInfo
impl Serialize for ModuleInfo
source§impl StableAbi for ModuleInfo
impl StableAbi for ModuleInfo
§type IsNonZeroType = False
type IsNonZeroType = False
source§const LAYOUT: &'static TypeLayout = _
const LAYOUT: &'static TypeLayout = _
source§const ABI_CONSTS: AbiConsts = AbiConsts{
type_id:
Constructor(crate::std_types::utypeid::new_utypeid::<Self::StaticEquivalent>),
is_nonzero: <Self::IsNonZeroType as Boolean>::VALUE,}
const ABI_CONSTS: AbiConsts = AbiConsts{ type_id: Constructor(crate::std_types::utypeid::new_utypeid::<Self::StaticEquivalent>), is_nonzero: <Self::IsNonZeroType as Boolean>::VALUE,}
const-equivalents of the associated types.Auto Trait Implementations§
impl RefUnwindSafe for ModuleInfo
impl Send for ModuleInfo
impl Sync for ModuleInfo
impl Unpin for ModuleInfo
impl UnwindSafe for ModuleInfo
Blanket Implementations§
source§impl<'a, T> BorrowOwned<'a> for Twhere
T: 'a + Clone,
impl<'a, T> BorrowOwned<'a> for Twhere T: 'a + Clone,
fn r_borrow( this: &'a <T as BorrowOwned<'a>>::ROwned ) -> <T as BorrowOwned<'a>>::RBorrowed
fn r_to_owned( this: <T as BorrowOwned<'a>>::RBorrowed ) -> <T as BorrowOwned<'a>>::ROwned
fn deref_borrowed(this: &<T as BorrowOwned<'a>>::RBorrowed) -> &T
fn deref_owned(this: &<T as BorrowOwned<'a>>::ROwned) -> &T
fn from_cow_borrow(this: &'a T) -> <T as BorrowOwned<'a>>::RBorrowed
fn from_cow_owned(this: <T as ToOwned>::Owned) -> <T as BorrowOwned<'a>>::ROwned
fn into_cow_borrow(this: <T as BorrowOwned<'a>>::RBorrowed) -> &'a T
fn into_cow_owned(this: <T as BorrowOwned<'a>>::ROwned) -> <T as ToOwned>::Owned
source§impl<T> GetWithMetadata for T
impl<T> GetWithMetadata for T
§type ForSelf = WithMetadata_<T, T>
type ForSelf = WithMetadata_<T, T>
WithMetadata_<Self, Self>§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset. Read more§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset. Read more§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset. Read more§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset. Read more§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset) with value,
returning the previous value of the field. Read more§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere F: Copy,
§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset) with value,
returning the previous value of the field. Read more§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere F: Copy,
§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere T: ?Sized,
§fn piped<F, U>(self, f: F) -> Uwhere
F: FnOnce(Self) -> U,
Self: Sized,
fn piped<F, U>(self, f: F) -> Uwhere F: FnOnce(Self) -> U, Self: Sized,
§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere F: FnOnce(&'a Self) -> U,
piped except that the function takes &Self
Useful for functions that take &Self instead of Self. Read more§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere F: FnOnce(&'a mut Self) -> U,
piped, except that the function takes &mut Self.
Useful for functions that take &mut Self instead of Self.§fn mutated<F>(self, f: F) -> Selfwhere
F: FnOnce(&mut Self),
Self: Sized,
fn mutated<F>(self, f: F) -> Selfwhere F: FnOnce(&mut Self), Self: Sized,
§fn observe<F>(self, f: F) -> Selfwhere
F: FnOnce(&Self),
Self: Sized,
fn observe<F>(self, f: F) -> Selfwhere F: FnOnce(&Self), Self: Sized,
§fn as_ref_<T>(&self) -> &Twhere
Self: AsRef<T>,
T: ?Sized,
fn as_ref_<T>(&self) -> &Twhere Self: AsRef<T>, T: ?Sized,
AsRef,
using the turbofish .as_ref_::<_>() syntax. Read more