windows::Win32::System::ClrHosting

Trait IHostMemoryManager_Impl

pub trait IHostMemoryManager_Impl: IUnknownImpl {
    // Required methods
    fn CreateMalloc(&self, dwmalloctype: u32) -> Result<IHostMalloc>;
    fn VirtualAlloc(
        &self,
        paddress: *const c_void,
        dwsize: usize,
        flallocationtype: u32,
        flprotect: u32,
        ecriticallevel: EMemoryCriticalLevel,
        ppmem: *mut *mut c_void,
    ) -> Result<()>;
    fn VirtualFree(
        &self,
        lpaddress: *const c_void,
        dwsize: usize,
        dwfreetype: u32,
    ) -> Result<()>;
    fn VirtualQuery(
        &self,
        lpaddress: *const c_void,
        lpbuffer: *mut c_void,
        dwlength: usize,
        presult: *mut usize,
    ) -> Result<()>;
    fn VirtualProtect(
        &self,
        lpaddress: *const c_void,
        dwsize: usize,
        flnewprotect: u32,
    ) -> Result<u32>;
    fn GetMemoryLoad(
        &self,
        pmemoryload: *mut u32,
        pavailablebytes: *mut usize,
    ) -> Result<()>;
    fn RegisterMemoryNotificationCallback(
        &self,
        pcallback: Ref<'_, ICLRMemoryNotificationCallback>,
    ) -> Result<()>;
    fn NeedsVirtualAddressSpace(
        &self,
        startaddress: *const c_void,
        size: usize,
    ) -> Result<()>;
    fn AcquiredVirtualAddressSpace(
        &self,
        startaddress: *const c_void,
        size: usize,
    ) -> Result<()>;
    fn ReleasedVirtualAddressSpace(
        &self,
        startaddress: *const c_void,
    ) -> Result<()>;
}

Required Methods§

fn CreateMalloc(&self, dwmalloctype: u32) -> Result<IHostMalloc>

fn VirtualAlloc( &self, paddress: *const c_void, dwsize: usize, flallocationtype: u32, flprotect: u32, ecriticallevel: EMemoryCriticalLevel, ppmem: *mut *mut c_void, ) -> Result<()>

fn VirtualFree( &self, lpaddress: *const c_void, dwsize: usize, dwfreetype: u32, ) -> Result<()>

fn VirtualQuery( &self, lpaddress: *const c_void, lpbuffer: *mut c_void, dwlength: usize, presult: *mut usize, ) -> Result<()>

fn VirtualProtect( &self, lpaddress: *const c_void, dwsize: usize, flnewprotect: u32, ) -> Result<u32>

fn GetMemoryLoad( &self, pmemoryload: *mut u32, pavailablebytes: *mut usize, ) -> Result<()>

fn RegisterMemoryNotificationCallback( &self, pcallback: Ref<'_, ICLRMemoryNotificationCallback>, ) -> Result<()>

fn NeedsVirtualAddressSpace( &self, startaddress: *const c_void, size: usize, ) -> Result<()>

fn AcquiredVirtualAddressSpace( &self, startaddress: *const c_void, size: usize, ) -> Result<()>

fn ReleasedVirtualAddressSpace(&self, startaddress: *const c_void) -> Result<()>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§