public static Version NativeOsVersion() { RtlOsVersionInfoExW osVersionInfo = new RtlOsVersionInfoExW(); osVersionInfo.dwOSVersionInfoSize = (uint)Marshal.SizeOf(typeof(RtlOsVersionInfoExW)); int status = RtlGetVersion(osVersionInfo); if (status != 0) { return(Environment.OSVersion.Version); } return(new Version((int)osVersionInfo.dwMajorVersion, (int)osVersionInfo.dwMinorVersion, (int)osVersionInfo.dwBuildNumber)); }
public extern static int RtlGetVersion([In(), Out()] RtlOsVersionInfoExW osversion);