Trait VmiHandler

Source
pub trait VmiHandler<Driver, Os>
where Driver: VmiDriver, Os: VmiOs<Driver>,
{ type Output; // Required method fn handle_event( &mut self, event: VmiContext<'_, Driver, Os>, ) -> VmiEventResponse<<Driver as VmiDriver>::Architecture>; // Provided methods fn handle_timeout(&mut self, _session: &VmiSession<'_, Driver, Os>) { ... } fn handle_interrupted(&mut self, _session: &VmiSession<'_, Driver, Os>) { ... } fn check_completion(&self) -> Option<Self::Output> { ... } }
Expand description

A trait for handling VMI events.

A factory that creates a handler implementing this trait is passed to the VmiSession::handle method to handle VMI events.

Required Associated Types§

Source

type Output

The output type of the handler.

Required Methods§

Source

fn handle_event( &mut self, event: VmiContext<'_, Driver, Os>, ) -> VmiEventResponse<<Driver as VmiDriver>::Architecture>

Handles a VMI event.

Provided Methods§

Source

fn handle_timeout(&mut self, _session: &VmiSession<'_, Driver, Os>)

Handles a timeout event.

Source

fn handle_interrupted(&mut self, _session: &VmiSession<'_, Driver, Os>)

Handles an interrupted event.

Source

fn check_completion(&self) -> Option<Self::Output>

Checks if the handler has completed.

This method is called after each event is handled. If the handler has completed, this method should return the output of the handler. Otherwise, it should return None.

Implementors§

Source§

impl<Driver, T, Bridge> VmiHandler<Driver, WindowsOs<Driver>> for InjectorHandler<Driver, WindowsOs<Driver>, T, Bridge>
where Driver: VmiDriver<Architecture = Amd64>, Bridge: BridgeHandler<Driver, WindowsOs<Driver>, u64>,