diff options
Diffstat (limited to 'zluda_inject/tests/helpers/indirect_cuinit.rs')
-rw-r--r-- | zluda_inject/tests/helpers/indirect_cuinit.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/zluda_inject/tests/helpers/indirect_cuinit.rs b/zluda_inject/tests/helpers/indirect_cuinit.rs new file mode 100644 index 0000000..3b4f1a7 --- /dev/null +++ b/zluda_inject/tests/helpers/indirect_cuinit.rs @@ -0,0 +1,16 @@ +#![crate_type = "bin"]
+
+use std::ffi::c_void;
+use std::mem;
+
+extern "system" {
+ fn LoadLibraryA(lpFileName: *const u8) -> *mut c_void;
+ fn GetProcAddress(hModule: *mut c_void, lpProcName: *const u8) -> *mut c_void;
+}
+
+fn main() {
+ let nvcuda = unsafe { LoadLibraryA(b"C:\\Windows\\System32\\nvcuda.dll\0".as_ptr()) };
+ let cuInit = unsafe { GetProcAddress(nvcuda, b"cuInit\0".as_ptr()) };
+ let cuInit = unsafe { mem::transmute::<_, unsafe extern "system" fn(u32) -> u32>(cuInit) };
+ unsafe { cuInit(0) };
+}
|