reference to packed field is unaligned
Ive tried ntapi = "0.4.1" ntapi = "0.4.0" ntapi = "0.3.7"
and 32bit and 64bit for each version
I get these errors when compiling the crate
error[E0793]: reference to packed field is unaligned
--> C:\Users\USER.cargo\registry\src\index.crates.io-6f17d22bba15001f\ntapi-0.3.7\src\ntexapi.rs:2783:52
|
2783 | *tick_count.QuadPart_mut() = read_volatile(&(*USER_SHARED_DATA).u.TickCountQuad);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
= note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
= help: copy the field contents to a local variable, or replace the reference with a raw pointer and use read_unaligned/write_unaligned (loads and stores via *p must be properly aligned even when using raw pointers)
error[E0793]: reference to packed field is unaligned
--> C:\Users\USER.cargo\registry\src\index.crates.io-6f17d22bba15001f\ntapi-0.3.7\src\ntexapi.rs:2807:25
|
2807 | ((read_volatile(&(*USER_SHARED_DATA).u.TickCountQuad).wrapping_mul((*USER_SHARED_DATA).TickCountMultiplier as u64)) >> 24) as u32
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
= note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
= help: copy the field contents to a local variable, or replace the reference with a raw pointer and use read_unaligned/write_unaligned (loads and stores via *p must be properly aligned even when using raw pointers)
For more information about this error, try rustc --explain E0793.
error: could not compile ntapi (lib) due to 2 previous errors
This was fixed in the 0.4 release. From the paths in the logs above, you're still using ntapi-0.3.7
I don't quite get it, why is Cargo/the compiler still using version 0.3.7 of the lib even if one has set explicitly ntapi = "0.4" in Cargo.toml
You probably have some other dependency that is requiring 0.3.7 (so both 0.3.7 and 0.4.x are brought into your crate graph).
Try running cargo tree -i ntapi to see all the packages that depend on ntapi
i should have sent all 3 errors but i didnt, they were 1:1 but different versions of ntapi
cargo update may help in such cases