use core::ffi::c_void;
use wdk_sys::ntddk::memcpy;
pub type SehFn = unsafe extern "system" fn(
option1: *mut c_void,
option2: *mut c_void,
option3: *mut c_void,
option4: *mut c_void,
) -> *mut c_void;
extern "C" {
pub fn SehFucntionExec(
func: SehFn,
option1: *mut c_void,
option2: *mut c_void,
option3: *mut c_void,
option4: *mut c_void,
) -> *mut c_void;
}
pub unsafe extern "system" fn write_user_memory_64(
option1: *mut c_void,
option2: *mut c_void,
_option3: *mut c_void,
_option4: *mut c_void,
) -> *mut c_void {
*(option1 as *mut u64) = option2 as u64;
1 as _
}
pub unsafe extern "system" fn read_user_memory_64(
option1: *mut c_void,
option2: *mut c_void,
_option3: *mut c_void,
_option4: *mut c_void,
) -> *mut c_void {
*(option1 as *mut u64) = *(option2 as *mut u64);
1 as _
}
pub unsafe extern "system" fn seh_memcpy(
option1: *mut c_void,
option2: *mut c_void,
option3: *mut c_void,
_option4: *mut c_void,
) -> *mut c_void {
unsafe {
memcpy(option1, option2, option3 as _);
}
1 as _
}