summaryrefslogtreecommitdiff
path: root/src/shared/directoryentry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/directoryentry.cpp')
-rw-r--r--src/shared/directoryentry.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp
index 5172346b..87431ea8 100644
--- a/src/shared/directoryentry.cpp
+++ b/src/shared/directoryentry.cpp
@@ -489,13 +489,18 @@ void DirectoryEntry::propagateOrigin(int origin)
static bool SupportOptimizedFind()
{
- OSVERSIONINFO versionInfo;
- versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&versionInfo);
-
// large fetch and basic info for FindFirstFileEx is supported on win server 2008 r2, win 7 and newer
- return (versionInfo.dwMajorVersion > 6) ||
- ((versionInfo.dwMajorVersion == 6) && (versionInfo.dwMinorVersion >= 1));
+
+ OSVERSIONINFOEX versionInfo;
+ versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+ versionInfo.dwMajorVersion = 6;
+ versionInfo.dwMinorVersion = 1;
+ ULONGLONG mask = ::VerSetConditionMask(
+ ::VerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL),
+ VER_MINORVERSION, VER_GREATER_EQUAL);
+
+ bool res = ::VerifyVersionInfo(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, mask);
+ return res;
}