Build Status

nt_version

Queries the major, minor, and build version of Windows (NT) efficiently with usage of undocumented NTDLL functions. Needs a minimum version of NT 5.1 (Windows XP or above) toml nt_version = "0.1" If building fails with a linker error, you're missing ntdll.lib from your system. It doesn't come on older versions of Windows with the SDK and you need to install the DDK.

Alternatively, enable the fallback feature which queries the function pointer at runtime (but is slower): toml nt_version = { version = "0.1", features = ["fallback"] }

Usage

It only has one function: get, and it's recommended you use it explicitly:

rust fn main() { let (major, minor, build) = nt_version::get(); println!("NT Version v{}.{}.{}", major, minor, build); } This returns the NTDLL version, which has this numbering system.

Why?

Microsoft deprecated GetVersionEx back in Windows 8.1 in favour of functions such as "IsWindows8Point1OrGreater" and there's not really a good way to just get an OS version now. You can still use NetWkstaGetInfo from lmwksta.h if you just want the OS version without any build numbers, but it's much slower and allocates a WKSTAINFO100 chunk which you have to deallocate yourself, containing excess info your like PC name as a windows wide-string. Not very ideal.