Skip to main content

Module driver

Module driver 

Source
Expand description

VMI driver trait hierarchy.

Defines the capabilities a VMI driver can provide. Each trait represents an independent capability; drivers implement only the traits they support.

§Trait hierarchy

All sub-traits extend VmiDriver, the base trait that carries the Architecture associated type and VM metadata.

VmiDriver (base: Architecture type + info)
├── VmiRead                 read guest physical pages
├── VmiWrite                write guest physical pages
├── VmiQueryProtection      query EPT/NPT page permissions
├── VmiSetProtection        modify EPT/NPT page permissions
├── VmiQueryRegisters       get vCPU register state
├── VmiSetRegisters         set vCPU register state
├── VmiViewControl          manage EPT/NPT views
├── VmiEventControl         monitor and intercept events
└── VmiVmControl            VM lifecycle, interrupt injection

§Convenience supertraits

VmiMemory      = VmiRead + VmiWrite
VmiProtection  = VmiQueryProtection + VmiSetProtection
VmiRegisters   = VmiQueryRegisters + VmiSetRegisters
VmiFullDriver  = all of the above

§Examples

A crash dump driver only needs read-only access:

impl VmiDriver for MyDumpDriver { /* ... */ }
impl VmiRead for MyDumpDriver { /* ... */ }
impl VmiQueryRegisters for MyDumpDriver { /* ... */ }

A hypervisor-backed driver that implements everything automatically satisfies VmiFullDriver.

Traits§

VmiDriver
Base trait for all VMI driver sub-traits.
VmiEventControl
Capability to control event monitoring and delivery.
VmiFullDriver
A trait for implementing a VMI driver.
VmiMemory
Combined page read and write access.
VmiProtection
Combined memory access read and write.
VmiQueryProtection
Capability to query memory access permissions.
VmiQueryRegisters
Capability to read vCPU registers.
VmiRead
Capability to read guest physical memory pages.
VmiReadAccess
All read-only VMI capabilities.
VmiRegisters
Combined register read and write access.
VmiSetProtection
Capability to modify memory access permissions.
VmiSetRegisters
Capability to write vCPU registers.
VmiViewControl
Capability to manage EPT/NPT views.
VmiVmControl
Capability to control VM lifecycle and GFN allocation.
VmiWrite
Capability to write guest physical memory pages.
VmiWriteAccess
All write/control VMI capabilities.