diff --git a/src/ntexapi.rs b/src/ntexapi.rs index 5fa47c9..d48749d 100644 --- a/src/ntexapi.rs +++ b/src/ntexapi.rs @@ -1,4 +1,6 @@ use core::mem::uninitialized; +#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] +use core::ptr::addr_of; use core::ptr::read_volatile; #[cfg(target_arch = "x86")] use core::sync::atomic::spin_loop_hint; @@ -2780,7 +2782,7 @@ pub const USER_SHARED_DATA: *const KUSER_SHARED_DATA = 0x7ffe0000 as *const _; pub unsafe fn NtGetTickCount64() -> ULONGLONG { let mut tick_count: ULARGE_INTEGER = uninitialized(); #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] { - *tick_count.QuadPart_mut() = read_volatile(&(*USER_SHARED_DATA).u.TickCountQuad); + *tick_count.QuadPart_mut() = read_volatile(addr_of!((*USER_SHARED_DATA).u.TickCountQuad)); } #[cfg(target_arch = "x86")] { loop { @@ -2804,7 +2806,7 @@ pub unsafe fn NtGetTickCount64() -> ULONGLONG { #[inline] pub unsafe fn NtGetTickCount() -> ULONG { #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] { - ((read_volatile(&(*USER_SHARED_DATA).u.TickCountQuad) + ((read_volatile(addr_of!((*USER_SHARED_DATA).u.TickCountQuad)) * (*USER_SHARED_DATA).TickCountMultiplier as u64) >> 24) as u32 } #[cfg(target_arch = "x86")] {