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.
- VmiEvent
Control - Capability to control event monitoring and delivery.
- VmiFull
Driver - A trait for implementing a VMI driver.
- VmiMemory
- Combined page read and write access.
- VmiProtection
- Combined memory access read and write.
- VmiQuery
Protection - Capability to query memory access permissions.
- VmiQuery
Registers - Capability to read vCPU registers.
- VmiRead
- Capability to read guest physical memory pages.
- VmiRead
Access - All read-only VMI capabilities.
- VmiRegisters
- Combined register read and write access.
- VmiSet
Protection - Capability to modify memory access permissions.
- VmiSet
Registers - Capability to write vCPU registers.
- VmiView
Control - Capability to manage EPT/NPT views.
- VmiVm
Control - Capability to control VM lifecycle and GFN allocation.
- VmiWrite
- Capability to write guest physical memory pages.
- VmiWrite
Access - All write/control VMI capabilities.