diff options
Diffstat (limited to 'base/win_util.cc')
| -rw-r--r-- | base/win_util.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/base/win_util.cc b/base/win_util.cc index d8f8b4e..6f193cc 100644 --- a/base/win_util.cc +++ b/base/win_util.cc @@ -60,6 +60,24 @@ WinVersion GetWinVersion() { return win_version; } +void GetServicePackLevel(int* major, int* minor) { + DCHECK(major && minor); + static bool checked_version = false; + static int service_pack_major = -1; + static int service_pack_minor = -1; + if (!checked_version) { + OSVERSIONINFOEX version_info = {0}; + version_info.dwOSVersionInfoSize = sizeof(version_info); + GetVersionEx(reinterpret_cast<LPOSVERSIONINFOW>(&version_info)); + service_pack_major = version_info.wServicePackMajor; + service_pack_minor = version_info.wServicePackMinor; + checked_version = true; + } + + *major = service_pack_major; + *minor = service_pack_minor; +} + bool AddAccessToKernelObject(HANDLE handle, WELL_KNOWN_SID_TYPE known_sid, ACCESS_MASK access) { PSECURITY_DESCRIPTOR descriptor = NULL; |
