static int is_windows_version_or_greater(DWORD os_major, DWORD os_minor, WORD service_pack_major, WORD service_pack_minor) { OSVERSIONINFOEX osvi; DWORDLONG condition_mask = 0; int op = VER_GREATER_EQUAL; /* Initialize the OSVERSIONINFOEX structure. */ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = os_major; osvi.dwMinorVersion = os_minor; osvi.wServicePackMajor = service_pack_major; osvi.wServicePackMinor = service_pack_minor; /* Initialize the condition mask. */ VER_SET_CONDITION(condition_mask, VER_MAJORVERSION, op); VER_SET_CONDITION(condition_mask, VER_MINORVERSION, op); VER_SET_CONDITION(condition_mask, VER_SERVICEPACKMAJOR, op); VER_SET_CONDITION(condition_mask, VER_SERVICEPACKMINOR, op); /* Perform the test. */ return (int) VerifyVersionInfo( &osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR, condition_mask); }
int isc_win32os_versioncheck(unsigned int major, unsigned int minor, unsigned int spmajor, unsigned int spminor) { OSVERSIONINFOEX osVer; DWORD typeMask; ULONGLONG conditionMask; memset(&osVer, 0, sizeof(OSVERSIONINFOEX)); osVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); typeMask = 0; conditionMask = 0; /* Optimistic: likely greater */ osVer.dwMajorVersion = major; typeMask |= VER_MAJORVERSION; conditionMask = VerSetConditionMask(conditionMask, VER_MAJORVERSION, VER_GREATER); osVer.dwMinorVersion = minor; typeMask |= VER_MINORVERSION; conditionMask = VerSetConditionMask(conditionMask, VER_MINORVERSION, VER_GREATER); osVer.wServicePackMajor = spmajor; typeMask |= VER_SERVICEPACKMAJOR; conditionMask = VerSetConditionMask(conditionMask, VER_SERVICEPACKMAJOR, VER_GREATER); osVer.wServicePackMinor = spminor; typeMask |= VER_SERVICEPACKMINOR; conditionMask = VerSetConditionMask(conditionMask, VER_SERVICEPACKMINOR, VER_GREATER); if (VerifyVersionInfo(&osVer, typeMask, conditionMask)) return (1); /* Failed: retry with equal */ conditionMask = 0; conditionMask = VerSetConditionMask(conditionMask, VER_MAJORVERSION, VER_EQUAL); conditionMask = VerSetConditionMask(conditionMask, VER_MINORVERSION, VER_EQUAL); conditionMask = VerSetConditionMask(conditionMask, VER_SERVICEPACKMAJOR, VER_EQUAL); conditionMask = VerSetConditionMask(conditionMask, VER_SERVICEPACKMINOR, VER_EQUAL); if (VerifyVersionInfo(&osVer, typeMask, conditionMask)) return (0); else return (-1); }
BOOL IsWin2kSP4OrLater() { OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; BYTE op=VER_GREATER_EQUAL; // Initialize the OSVERSIONINFOEX structure. ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = 5; osvi.dwMinorVersion = 0; osvi.wServicePackMajor = 4; osvi.wServicePackMinor = 0; // Initialize the condition mask. VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, op ); VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, op ); VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMAJOR, op ); VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMINOR, op ); // Perform the test. return VerifyVersionInfo( &osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR, dwlConditionMask); }
QT_BEGIN_INCLUDE_NAMESPACE #include "qt_windows.h" QT_END_INCLUDE_NAMESPACE #ifndef Q_OS_WINRT static inline OSVERSIONINFO winOsVersion() { OSVERSIONINFO result = { sizeof(OSVERSIONINFO), 0, 0, 0, 0, {'\0'}}; // GetVersionEx() has been deprecated in Windows 8.1 and will return // only Windows 8 from that version on. # if defined(_MSC_VER) && _MSC_VER >= 1800 # pragma warning( push ) # pragma warning( disable : 4996 ) # endif GetVersionEx(&result); # if defined(_MSC_VER) && _MSC_VER >= 1800 # pragma warning( pop ) # endif # ifndef Q_OS_WINCE if (result.dwMajorVersion == 6 && result.dwMinorVersion == 2) { // This could be Windows 8.1 or higher. Note that as of Windows 9, // the major version needs to be checked as well. DWORDLONG conditionMask = 0; VER_SET_CONDITION(conditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL); VER_SET_CONDITION(conditionMask, VER_MINORVERSION, VER_GREATER_EQUAL); VER_SET_CONDITION(conditionMask, VER_PLATFORMID, VER_EQUAL); OSVERSIONINFOEX checkVersion = { sizeof(OSVERSIONINFOEX), result.dwMajorVersion, result.dwMinorVersion, result.dwBuildNumber, result.dwPlatformId, {'\0'}, 0, 0, 0, 0, 0 }; for ( ; VerifyVersionInfo(&checkVersion, VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID, conditionMask); ++checkVersion.dwMinorVersion) result.dwMinorVersion = checkVersion.dwMinorVersion; } # endif // !Q_OS_WINCE return result; }
int is_windows_7() { #ifdef __MINGW32__ printf("Warning: this test was built with MinGW.\n" "MinGW does not contain necessary version checking infrastructure. Claiming to be Windows 7, even if we're not.\n"); return 1; #endif #if (defined(_WIN32) || defined(__WIN32__)) && ( !defined(__MINGW32__)) OSVERSIONINFOEX osvi; DWORDLONG condition_mask = 0; ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); // NT 6.1 is Windows 7 osvi.dwMajorVersion = 6; osvi.dwMinorVersion = 1; VER_SET_CONDITION(condition_mask, VER_MAJORVERSION, VER_EQUAL); VER_SET_CONDITION(condition_mask, VER_MINORVERSION, VER_GREATER_EQUAL); return VerifyVersionInfo(&osvi, VER_MAJORVERSION | VER_MINORVERSION, condition_mask); #else return 0; #endif }
static unsigned int calculate_minimum_latency(void) { OSVERSIONINFOEX osvi; DWORDLONG mask; /* Running under Terminal Services results in underruns with low latency. */ if (GetSystemMetrics(SM_REMOTESESSION) == TRUE) { return 500; } /* Vista's WinMM implementation underruns when less than 200ms of audio is buffered. */ memset(&osvi, 0, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = 6; osvi.dwMinorVersion = 0; mask = 0; VER_SET_CONDITION(mask, VER_MAJORVERSION, VER_EQUAL); VER_SET_CONDITION(mask, VER_MINORVERSION, VER_EQUAL); if (VerifyVersionInfo(&osvi, VER_MAJORVERSION | VER_MINORVERSION, mask) != 0) { return 200; } return 100; }
/* * Check Windows version * The problem happens only in Windows 7 * */ static BOOL IsWin7OrLater() { OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; int op = VER_GREATER_EQUAL; /* Initialize the OSVERSIONINFOEX structure */ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = 6; osvi.dwMinorVersion = 1; osvi.wServicePackMajor = 0; osvi.wServicePackMinor = 0; /* Initialize the condition mask */ VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, op ); VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, op ); VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMAJOR, op ); VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMINOR, op ); /* Perform the test */ return VerifyVersionInfo( &osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR, dwlConditionMask); }
BOOL FileReader::IsVistaOrLater() { OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; int op=VER_GREATER_EQUAL; // Initialize the OSVERSIONINFOEX structure. ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = 6; osvi.dwMinorVersion = 0; osvi.wServicePackMajor = 0; osvi.wServicePackMinor = 0; // Initialize the condition mask. VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, op ); VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, op ); VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMAJOR, op ); VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMINOR, op ); // Perform the test. m_bIsVistaOrLater = VerifyVersionInfo( &osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR, dwlConditionMask); return m_bIsVistaOrLater; }
BOOL IsOSWin7() { BOOL bIsWinSeven = FALSE; OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; // Initialize the OSVERSIONINFOEX structure. ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = 6; osvi.dwMinorVersion = 1; osvi.wServicePackMajor = 0; // Initialize the condition mask. VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL ); VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, VER_GREATER_EQUAL ); VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL ); // Perform the test. if(VerifyVersionInfo(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask)) { bIsWinSeven = TRUE; } return bIsWinSeven; }
BOOL IsWindowsXPSP2OrLater ( void ) { OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; int op = VER_GREATER_EQUAL; // Initialize the OSVERSIONINFOEX structure. memset ( &osvi, 0, sizeof ( OSVERSIONINFOEX ) ); osvi.dwOSVersionInfoSize = sizeof ( OSVERSIONINFOEX ); osvi.dwMajorVersion = 5; osvi.dwMinorVersion = 1; osvi.wServicePackMajor = 2; osvi.wServicePackMinor = 0; // Initialize the condition mask. VER_SET_CONDITION ( dwlConditionMask, VER_MAJORVERSION, op ); VER_SET_CONDITION ( dwlConditionMask, VER_MINORVERSION, op ); VER_SET_CONDITION ( dwlConditionMask, VER_SERVICEPACKMAJOR, op ); VER_SET_CONDITION ( dwlConditionMask, VER_SERVICEPACKMINOR, op ); // Perform the test. return VerifyVersionInfo ( &osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR, dwlConditionMask ); }
BOOL IsWindowsVista() { // Code from Chapter 4 // Prepare the OSVERSIONINFOEX structure to indicate Windows Vista. OSVERSIONINFOEX osver = { 0 }; osver.dwOSVersionInfoSize = sizeof(osver); osver.dwMajorVersion = 6; osver.dwMinorVersion = 0; osver.dwPlatformId = VER_PLATFORM_WIN32_NT; // Prepare the condition mask. DWORDLONG dwlConditionMask = 0; // You MUST initialize this to 0. VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION, VER_EQUAL); VER_SET_CONDITION(dwlConditionMask, VER_MINORVERSION, VER_EQUAL); VER_SET_CONDITION(dwlConditionMask, VER_PLATFORMID, VER_EQUAL); // Perform the version test. if (VerifyVersionInfo(&osver, VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID, dwlConditionMask)) { // The host system is Windows Vista exactly. return(TRUE); } else { // The host system is NOT Windows Vista. return(FALSE); } }
BOOL WINAPI VerifyWindowsVersion( BYTE dwCondMask, DWORD dwMajorVersion, DWORD dwMinorVersion, WORD wServicePackMajor) { OSVERSIONINFOEX osvi = {0}; DWORDLONG dwlCondMask = 0; DWORD dwTypeMask = 0; osvi.dwOSVersionInfoSize = sizeof(osvi); osvi.dwMajorVersion = dwMajorVersion; osvi.dwMinorVersion = dwMinorVersion; if (wServicePackMajor < 0xFFFF) { osvi.wServicePackMajor = wServicePackMajor; } VER_SET_CONDITION(dwlCondMask, VER_MAJORVERSION, dwCondMask); dwTypeMask |= VER_MAJORVERSION; VER_SET_CONDITION(dwlCondMask, VER_MINORVERSION, dwCondMask); dwTypeMask |= VER_MINORVERSION; if (wServicePackMajor < 0xFFFF) { VER_SET_CONDITION(dwlCondMask, VER_SERVICEPACKMAJOR, dwCondMask); dwTypeMask |= VER_SERVICEPACKMAJOR; } return VerifyVersionInfo( &osvi, dwTypeMask, dwlCondMask); }
/* Initialize all the allocators here. * This function should be called only once when Wireshark or TShark starts * up. */ void emem_init(void) { ep_init_chunk(); se_init_chunk(); if (getenv("WIRESHARK_DEBUG_SCRUB_MEMORY")) debug_use_memory_scrubber = TRUE; #if defined (_WIN32) /* Set up our guard page info for Win32 */ GetSystemInfo(&sysinfo); pagesize = sysinfo.dwPageSize; #if (_MSC_VER >= 1800) /* * On VS2103, GetVersionEx is deprecated. Microsoft recommend to * use VerifyVersionInfo instead */ { OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; int op = VER_EQUAL; SecureZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS; VER_SET_CONDITION(dwlConditionMask, VER_PLATFORMID, op); iswindowsplatform = VerifyVersionInfo(&osvi, VER_PLATFORMID, dwlConditionMask); } #else /* calling GetVersionEx using the OSVERSIONINFO structure. * OSVERSIONINFOEX requires Win NT4 with SP6 or newer NT Versions. * OSVERSIONINFOEX will fail on Win9x and older NT Versions. * See also: * http://msdn.microsoft.com/library/en-us/sysinfo/base/getversionex.asp * http://msdn.microsoft.com/library/en-us/sysinfo/base/osversioninfo_str.asp * http://msdn.microsoft.com/library/en-us/sysinfo/base/osversioninfoex_str.asp */ { OSVERSIONINFO versinfo; SecureZeroMemory(&versinfo, sizeof(OSVERSIONINFO)); versinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&versinfo); iswindowsplatform = (versinfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS); } #endif #elif defined(USE_GUARD_PAGES) pagesize = sysconf(_SC_PAGESIZE); if (pagesize == -1) fprintf(stderr, "Warning: call to sysconf() for _SC_PAGESIZE has failed...\n"); #ifdef NEED_DEV_ZERO dev_zero_fd = ws_open("/dev/zero", O_RDWR); g_assert(dev_zero_fd != -1); #endif #endif /* _WIN32 / USE_GUARD_PAGES */ }
/* Vista is major: 6, minor: 0 */ bool IsVistaOrGreater() { OSVERSIONINFOEX osver = { 0 }; ULONGLONG condMask = 0; osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osver.dwMajorVersion = 6; VER_SET_CONDITION(condMask, VER_MAJORVERSION, VER_GREATER_EQUAL); return VerifyVersionInfo(&osver, VER_MAJORVERSION, condMask); }
void Curl_sndbufset(curl_socket_t sockfd) { int val = CURL_MAX_WRITE_SIZE + 32; int curval = 0; int curlen = sizeof(curval); DWORD majorVersion = 6; static int detectOsState = DETECT_OS_NONE; if(detectOsState == DETECT_OS_NONE) { #if !defined(_WIN32_WINNT) || !defined(_WIN32_WINNT_WIN2K) || \ (_WIN32_WINNT < _WIN32_WINNT_WIN2K) OSVERSIONINFO osver; memset(&osver, 0, sizeof(osver)); osver.dwOSVersionInfoSize = sizeof(osver); detectOsState = DETECT_OS_PREVISTA; if(GetVersionEx(&osver)) { if(osver.dwMajorVersion >= majorVersion) detectOsState = DETECT_OS_VISTA_OR_LATER; } #elif defined(CURL_WINDOWS_APP) (void)majorVersion; detectOsState = DETECT_OS_VISTA_OR_LATER; #else ULONGLONG cm; OSVERSIONINFOEX osver; memset(&osver, 0, sizeof(osver)); osver.dwOSVersionInfoSize = sizeof(osver); osver.dwMajorVersion = majorVersion; cm = VerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL); cm = VerSetConditionMask(cm, VER_MINORVERSION, VER_GREATER_EQUAL); cm = VerSetConditionMask(cm, VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL); cm = VerSetConditionMask(cm, VER_SERVICEPACKMINOR, VER_GREATER_EQUAL); if(VerifyVersionInfo(&osver, (VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR), cm)) detectOsState = DETECT_OS_VISTA_OR_LATER; else detectOsState = DETECT_OS_PREVISTA; #endif } if(detectOsState == DETECT_OS_VISTA_OR_LATER) return; if(getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *)&curval, &curlen) == 0) if(curval > val) return; setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (const char *)&val, sizeof(val)); }
BOOL IsVistaOrGreater(void) { OSVERSIONINFOEX osvi; DWORDLONG condition = 0; ZeroMemory(&osvi, sizeof osvi); osvi.dwOSVersionInfoSize = sizeof osvi; osvi.dwMajorVersion = 6; VER_SET_CONDITION(condition, VER_MAJORVERSION, VER_GREATER_EQUAL); return VerifyVersionInfo(&osvi, VER_MAJORVERSION, condition); }
INT CALLBACK FolderBrowserDialog::BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM pData) { static BOOL bProcessEnsureVisible = FALSE; switch(uMsg) { case BFFM_INITIALIZED: { //In case of Windows 7 and later //INFO: Correction for the Microsoft bug that doesn't // scroll the tree-view to the selected item... OSVERSIONINFOEX osi; DWORDLONG dwlConditionMask = 0; ::SecureZeroMemory(&osi, sizeof(OSVERSIONINFOEX)); osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osi.dwMajorVersion = 6; osi.dwMinorVersion = 1; VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL); VER_SET_CONDITION(dwlConditionMask, VER_MINORVERSION, VER_GREATER_EQUAL); //if (GetVersionEx(&osi) && osi.dwMajorVersion >= 6 && osi.dwMinorVersion >= 1) if (VerifyVersionInfo(&osi, VER_MAJORVERSION | VER_MINORVERSION, dwlConditionMask)) bProcessEnsureVisible = TRUE; FolderBrowserDialog* bfd = FolderBrowserDialog::GetInstance(); if (!bfd) break; if (bfd->Title[0]) SetWindowTextW(hwnd,bfd->Title); if(bfd->curdir[0]) ::SendMessageW(hwnd, BFFM_SETSELECTIONW, TRUE, (LPARAM)bfd->curdir); else if (bfd->root) ::SendMessageW(hwnd, BFFM_SETSELECTIONW, FALSE, (LPARAM)bfd->root); return 1; } case BFFM_SELCHANGED: if (bProcessEnsureVisible) { bProcessEnsureVisible = FALSE; HWND hTreeView = 0; ::EnumChildWindows(hwnd, FolderBrowserDialog::FindTreeViewCallback, (LPARAM)&hTreeView); if (hTreeView) { HTREEITEM hItm = TreeView_GetSelection(hTreeView); if (hItm) { TreeView_EnsureVisible(hTreeView, hItm); TreeView_Expand(hTreeView, hItm, TVE_EXPAND); } } } break; } return 0; }
// // IsVistaOrAbove // bool IsVistaOrAbove() { OSVERSIONINFOEX ovi = { 0 }; ovi.dwOSVersionInfoSize = sizeof(ovi); ovi.dwMajorVersion = 6; ovi.dwPlatformId = VER_PLATFORM_WIN32_NT; ULONGLONG uConditionMask = 0; uConditionMask = VerSetConditionMask(uConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL); uConditionMask = VerSetConditionMask(uConditionMask, VER_PLATFORMID, VER_EQUAL); return VerifyVersionInfo(&ovi, VER_MAJORVERSION | VER_PLATFORMID, uConditionMask) != FALSE; }
bool VolatileBuffer::Init(size_t aSize, size_t aAlignment) { MOZ_ASSERT(!mSize && !mBuf, "Init called twice"); MOZ_ASSERT(!(aAlignment % sizeof(void *)), "Alignment must be multiple of pointer size"); mSize = aSize; if (aSize < MIN_VOLATILE_ALLOC_SIZE) { goto heap_alloc; } static bool sCheckedVersion = false; static bool sUndoSupported = false; if (!sCheckedVersion) { OSVERSIONINFOEX verinfo = { 0 }; verinfo.dwOSVersionInfoSize = sizeof(verinfo); verinfo.dwMajorVersion = 6; verinfo.dwMinorVersion = 2; DWORDLONG mask = 0; VER_SET_CONDITION(mask, VER_MAJORVERSION, VER_GREATER_EQUAL); VER_SET_CONDITION(mask, VER_MINORVERSION, VER_GREATER_EQUAL); sUndoSupported = VerifyVersionInfo(&verinfo, VER_MAJORVERSION | VER_MINORVERSION, mask); sCheckedVersion = true; } if (!sUndoSupported) { goto heap_alloc; } mBuf = VirtualAllocEx(GetCurrentProcess(), nullptr, mSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); if (mBuf) { return true; } heap_alloc: #ifdef MOZ_MEMORY posix_memalign(&mBuf, aAlignment, aSize); #else mBuf = _aligned_malloc(aSize, aAlignment); #endif mHeap = true; return !!mBuf; }
// http://msdn.microsoft.com/en-us/library/ms725491.aspx static bool IsGteVista() { OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = 6; VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL); return VerifyVersionInfo(&osvi, VER_MAJORVERSION, dwlConditionMask) != FALSE; }
static bool isWindowsVersionOrGreater(uint16 majorVersion, uint16 minorVersion) { OSVERSIONINFOEX osvi = { sizeof(osvi), 0, 0, 0, 0, {0}, 0, 0 }; DWORDLONG condition = VerSetConditionMask(VerSetConditionMask( 0, VER_MAJORVERSION, VER_GREATER_EQUAL), VER_MINORVERSION, VER_GREATER_EQUAL); osvi.dwMajorVersion = majorVersion; osvi.dwMinorVersion = minorVersion; return VerifyVersionInfo(&osvi, VER_MAJORVERSION | VER_MINORVERSION, condition) != 0; }
bool util::OSVersionChecker::IsWin7() { OSVERSIONINFOEX ver; DWORDLONG condMask = 0; ZeroMemory(&ver, sizeof(OSVERSIONINFOEX)); ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); ver.dwMajorVersion = 6; ver.dwMinorVersion = 1; VER_SET_CONDITION(condMask, VER_MAJORVERSION, VER_GREATER_EQUAL); VER_SET_CONDITION(condMask, VER_MINORVERSION, VER_GREATER_EQUAL); BOOL bRet = VerifyVersionInfo(&ver, VER_MAJORVERSION | VER_MINORVERSION, condMask); return bRet == TRUE; }
void PerformanceTimer::Initialize() { #if defined(OVR_OS_WIN32) // Desktop Windows only // The following has the effect of setting the NT timer resolution (NtSetTimerResolution) to 1 millisecond. MMRESULT mmr = timeBeginPeriod(1); OVR_ASSERT(TIMERR_NOERROR == mmr); OVR_UNUSED(mmr); #endif InitializeCriticalSection(&TimeCS); MMTimeWrapCounter = 0; getFrequency(); #if defined(OVR_OS_WIN32) // Desktop Windows only // Set Vista flag. On Vista, we can just use QPC() without all the extra work OSVERSIONINFOEX ver; ZeroMemory(&ver, sizeof(OSVERSIONINFOEX)); ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); ver.dwMajorVersion = 6; // Vista+ DWORDLONG condMask = 0; VER_SET_CONDITION(condMask, VER_MAJORVERSION, VER_GREATER_EQUAL); // VerifyVersionInfo returns true if the OS meets the conditions set above UsingVistaOrLater = VerifyVersionInfo(&ver, VER_MAJORVERSION, condMask) != 0; #else UsingVistaOrLater = true; #endif OVR_DEBUG_LOG(("PerformanceTimer UsingVistaOrLater = %d", (int)UsingVistaOrLater)); #if defined(OVR_BUILD_DEBUG) && defined(OVR_OS_WIN32) HMODULE hNtDll = LoadLibrary(L"NtDll.dll"); if (hNtDll) { pNtQueryTimerResolution = (NtQueryTimerResolutionType)GetProcAddress(hNtDll, "NtQueryTimerResolution"); //pNtSetTimerResolution = (NtSetTimerResolutionType)GetProcAddress(hNtDll, "NtSetTimerResolution"); if(pNtQueryTimerResolution) { ULONG MinimumResolution; // in 100-ns units ULONG MaximumResolution; ULONG ActualResolution; pNtQueryTimerResolution(&MinimumResolution, &MaximumResolution, &ActualResolution); OVR_DEBUG_LOG(("NtQueryTimerResolution = Min %ld us, Max %ld us, Current %ld us", MinimumResolution / 10, MaximumResolution / 10, ActualResolution / 10)); } FreeLibrary(hNtDll); } #endif }
bool IsAtLeast(int major, int minor = 0) { OSVERSIONINFOEX vi = { 0 }; vi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); vi.dwMajorVersion = major; vi.dwMinorVersion = minor; vi.dwPlatformId = VER_PLATFORM_WIN32_NT; DWORDLONG mask = 0; VER_SET_CONDITION(mask, VER_MAJORVERSION, VER_GREATER_EQUAL); VER_SET_CONDITION(mask, VER_MINORVERSION, VER_GREATER_EQUAL); VER_SET_CONDITION(mask, VER_PLATFORMID, VER_EQUAL); return VerifyVersionInfo(&vi, VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID, mask) != 0; }
BOOL IsVistaOrGreater2() // workaround for XP toolset missing VersionHelpers.h { OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; int op = VER_GREATER_EQUAL; ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = 6; VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION, op); return VerifyVersionInfo(&osvi, VER_MAJORVERSION, dwlConditionMask); }
/* Test if this is a Vista machine or higher */ int isVista(void) { OSVERSIONINFOEX InfoStruct; DWORD Mask; DWORDLONG ConditionMask=0; // Init InfoStruct.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); InfoStruct.dwMajorVersion = 6; // Vista Mask = VER_MAJORVERSION; VerSetConditionMask(ConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL); return VerifyVersionInfo(&InfoStruct, Mask, ConditionMask); }
bool IsVistaOrHigher() { OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; int op = VER_GREATER_EQUAL; ZeroMemory(&osvi, sizeof(osvi)); osvi.dwOSVersionInfoSize = sizeof(osvi); osvi.dwMajorVersion = 6; // Vista is 6.0 osvi.dwMinorVersion = 0; VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION, op); VER_SET_CONDITION(dwlConditionMask, VER_MINORVERSION, op); return VerifyVersionInfo(&osvi, VER_MAJORVERSION | VER_MINORVERSION, dwlConditionMask) != FALSE; }
int CUtils::CheckOS() { int iType = OS_UNSUPPORTED; #ifdef ENABLE_DISPLAY_MODULE OSVERSIONINFOEX osvi; ZeroMemory (&osvi, sizeof (OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX); osvi.dwPlatformId = VER_PLATFORM_WIN32_NT; osvi.dwMajorVersion = 6; // Vista DWORDLONG condmask = VerSetConditionMask (VerSetConditionMask (0, VER_MAJORVERSION, VER_GREATER_EQUAL), VER_PLATFORMID, VER_EQUAL); if (VerifyVersionInfo (&osvi, VER_MAJORVERSION | VER_PLATFORMID, condmask)) { iType = OS_VISTA_UPPER; } else { osvi.dwMajorVersion = 5; // XP/2000 if (VerifyVersionInfo (&osvi, VER_MAJORVERSION | VER_PLATFORMID, condmask)) iType = OS_XP; } #endif return iType; }
LRESULT CULSkinDlg::OnInitDialog(WPARAM wParam,LPARAM lParam) { ModifyStyle(WS_BORDER|DS_3DLOOK|WS_DLGFRAME,0); //проверка версии OSVERSIONINFOEX osvi; DWORDLONG dwlConditionMask = 0; ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osvi.dwMajorVersion = 5; VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL ); BOOL fRet=VerifyVersionInfo( &osvi, VER_MAJORVERSION, dwlConditionMask); #if _WIN32_WINNT<0x0500 const WS_EX_LAYERED=0; #endif DWORD dwExLayered; if(fRet) dwExLayered=WS_EX_LAYERED; else dwExLayered=0; ModifyStyleEx((DWORD)-1,/*WS_EX_CONTROLPARENT|*/dwExLayered); #if _WIN32_WINNT>=0x0501 // SetLayeredWindowAttributes(*this,0,255,LWA_ALPHA); #endif //позиционирование if(m_hBGBitmap!=NULL) { int horScrSize; int verScrSize; int x,y; RECT rect; GetWindowRect(&rect); HDC hDC=::GetDC(NULL); horScrSize=::GetDeviceCaps(hDC,HORZRES); verScrSize=::GetDeviceCaps(hDC,VERTRES); ReleaseDC(NULL,hDC); x=(horScrSize-m_SizeDlg.cx)/2; y=(verScrSize-m_SizeDlg.cy)/2; MoveWindow(x,y,m_SizeDlg.cx,m_SizeDlg.cy,FALSE); return FALSE; } else return CULDlg::OnInitDialog(wParam,lParam); };
// ªÒ»°≤Ÿ◊˜œµÕ≥√˚◊÷£¨»Áwindows 7 // ≥…π¶∑µªÿœµÕ≥–≈œ¢£¨ ß∞‹∑µªÿ Unknown System // ≤Œø�?https://msdn.microsoft.com/en-us/library/ms724834(v=vs.85).aspx std::string get_os_version() { OSVERSIONINFO osvi; ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); if ( FALSE == GetVersionEx(&osvi) ) { return "Unknown System"; } OSVERSIONINFOEX osviex; DWORDLONG dwlConditionMask = 0; // Initialize the OSVERSIONINFOEX structure. ZeroMemory(&osviex, sizeof(OSVERSIONINFOEX)); osviex.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); osviex.dwMajorVersion = osvi.dwMajorVersion; osviex.dwMinorVersion = osvi.dwMinorVersion; osviex.wProductType = VER_NT_WORKSTATION; // Initialize the condition mask. VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL ); VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, VER_GREATER_EQUAL ); VER_SET_CONDITION( dwlConditionMask, VER_PRODUCT_TYPE, VER_GREATER_EQUAL ); // Perform the test. BOOL ret = VerifyVersionInfo(&osviex,VER_MAJORVERSION | VER_MINORVERSION | VER_PRODUCT_TYPE,dwlConditionMask); if (osvi.dwMajorVersion == 5) { switch (osvi.dwMinorVersion){ case 0: return "Windows 2000"; case 1: return "Windows XP"; case 2: return GetSystemMetrics(SM_SERVERR2) == 0 ? "Windows Server 2003":"Windows Server 2003 R2"; default:return "Unknown System"; } }else if (osvi.dwMajorVersion == 6) { switch (osvi.dwMinorVersion) { case 0: return ret ? "Windows Vista" : "Windows Server 2008"; case 1: return ret ? "Windows 7" : "Windows Server 2008 R2"; case 2: return ret ? "Windows 8" : "Windows Server 2012"; case 3: return ret ? "Windows 8.1" : "Windows Server 2012 R2"; default:return "Unknown System"; } }else if (osvi.dwMajorVersion == 10) { switch (osvi.dwMinorVersion) { case 0: return ret ? "Windows 10" : "Windows Server 2016 Technical Preview"; default:return "Unknown System"; } } else { return "Unknown System"; } }