![crates.io version]

detours-rs

Microsoft Detours Rust library bindings.

This is raw FFI and doesn't provide a nice wrapper, only some windows-rs imports.

cpp DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); DetourAttach(&(PVOID&)Sleep, SleepHook); DetourTransactionCommit();

rust DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); let c_fn_ptr = Sleep as unsafe extern "C" fn(_) -> _ as *mut std::ffi::c_void; DetourAttach( c_fn_ptr as *mut *mut c_void, sleep_hook as fn(_) -> _ as *mut c_void, ); DetourTransactionCommit(); let start = Instant::now(); Sleep(10_000u32); let duration = start.elapsed(); assert!(duration.as_secs() < 10_000);