public static bool IsWindowsServer() { var osvi = new OsVersionInfoExW { dwOSVersionInfoSize = Marshal.SizeOf(typeof(OsVersionInfoExW)), wProductType = VER_NT_WORKSTATION }; var dwlConditionMask = VerSetConditionMask(0, VER_PRODUCT_TYPE, VER_EQUAL); return(!VerifyVersionInfoW(ref osvi, VER_PRODUCT_TYPE, dwlConditionMask)); }
private static bool IsWindowsVersionOrGreater(ushort wMajorVersion, ushort wMinorVersion, ushort wServicePackMajor) { var osvi = new OsVersionInfoExW { dwOSVersionInfoSize = Marshal.SizeOf(typeof(OsVersionInfoExW)) }; var dwlConditionMask = VerSetConditionMask( VerSetConditionMask( VerSetConditionMask( 0, VER_MAJORVERSION, VER_GREATER_EQUAL), VER_MINORVERSION, VER_GREATER_EQUAL), VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL); osvi.dwMajorVersion = wMajorVersion; osvi.dwMinorVersion = wMinorVersion; osvi.wServicePackMajor = wServicePackMajor; return(VerifyVersionInfoW(ref osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask)); }
public static extern bool VerifyVersionInfoW([In] ref OsVersionInfoExW lpVersionInformation, uint dwTypeMask, ulong dwlConditionMask);