use wdk_sys::PAGE_SIZE;
#[repr(C)]
pub union VmmEptDynamicSplitU {
pub entry: u64,
pub _pointer: u64,
}
#[repr(C)]
pub struct Split2mbPagingTo4kbPage {
pub pml_1: [u64; 512],
pub u: VmmEptDynamicSplitU,
pub is_busy: bool,
}
#[repr(C)]
pub struct EptTrampoline {
pub data: [u8; 50],
pub is_busy: bool,
}
impl EptTrampoline {
pub fn as_ptr(&mut self) -> *mut u8 {
(&mut self.data[0]) as *mut _ as *mut _
}
}
#[repr(C, align(0x1000))]
pub struct EptHookedPageDetail {
pub fake_page_contents: [u8; PAGE_SIZE as _],
pub physical_base_address_of_fake_page_contents: usize,
pub trampoline: *mut u8,
pub is_execution_hook: bool,
pub is_busy: bool,
}
impl Drop for EptHookedPageDetail {
fn drop(&mut self) {}
}