Index: base/win/windows_version.h |
=================================================================== |
--- base/win/windows_version.h (revision 80823) |
+++ base/win/windows_version.h (working copy) |
@@ -7,99 +7,62 @@ |
#pragma once |
#include "base/base_api.h" |
-#include "base/memory/singleton.h" |
typedef void* HANDLE; |
namespace base { |
namespace win { |
-// The running version of Windows. This is declared outside OSInfo for |
-// syntactic sugar reasons; see the declaration of GetVersion() below. |
// NOTE: Keep these in order so callers can do things like |
-// "if (base::win::GetVersion() >= base::win::VERSION_VISTA) ...". |
+// "if (GetWinVersion() > WINVERSION_2000) ...". It's OK to change the values, |
+// though. |
enum Version { |
- VERSION_PRE_XP = 0, // Not supported. |
- VERSION_XP, |
- VERSION_SERVER_2003, // Also includes Windows XP Professional x64. |
- VERSION_VISTA, |
- VERSION_SERVER_2008, |
- VERSION_WIN7, |
+ VERSION_PRE_2000 = 0, // Not supported |
+ VERSION_2000 = 1, // Not supported |
+ VERSION_XP = 2, |
+ VERSION_SERVER_2003 = 3, // Also includes Windows XP Professional x64 edition |
+ VERSION_VISTA = 4, |
+ VERSION_2008 = 5, |
+ VERSION_WIN7 = 6, |
}; |
-// A Singleton that can be used to query various pieces of information about the |
-// OS and process state. |
-class BASE_API OSInfo { |
- public: |
- struct VersionNumber { |
- int major; |
- int minor; |
- int build; |
- }; |
+// Returns the running version of Windows. |
+BASE_API Version GetVersion(); |
- struct ServicePack { |
- int major; |
- int minor; |
- }; |
+// Returns the major and minor version of the service pack installed. |
+BASE_API void GetServicePackLevel(int* major, int* minor); |
- // The processor architecture this copy of Windows natively uses. For |
- // example, given an x64-capable processor, we have three possibilities: |
- // 32-bit Chrome running on 32-bit Windows: X86_ARCHITECTURE |
- // 32-bit Chrome running on 64-bit Windows via WOW64: X64_ARCHITECTURE |
- // 64-bit Chrome running on 64-bit Windows: X64_ARCHITECTURE |
- enum WindowsArchitecture { |
- X86_ARCHITECTURE, |
- X64_ARCHITECTURE, |
- IA64_ARCHITECTURE, |
- OTHER_ARCHITECTURE, |
- }; |
+enum WindowsArchitecture { |
+ X86_ARCHITECTURE, |
+ X64_ARCHITECTURE, |
+ IA64_ARCHITECTURE, |
+ OTHER_ARCHITECTURE, |
+}; |
- // Whether a process is running under WOW64 (the wrapper that allows 32-bit |
- // processes to run on 64-bit versions of Windows). This will return |
- // WOW64_DISABLED for both "32-bit Chrome on 32-bit Windows" and "64-bit |
- // Chrome on 64-bit Windows". WOW64_UNKNOWN means "an error occurred", e.g. |
- // the process does not have sufficient access rights to determine this. |
- enum WOW64Status { |
- WOW64_DISABLED, |
- WOW64_ENABLED, |
- WOW64_UNKNOWN, |
- }; |
+// Returns the processor architecture this copy of Windows natively uses. |
+// For example, given an x64-capable processor, we have three possibilities: |
+// 32-bit Chrome running on 32-bit Windows: X86_ARCHITECTURE |
+// 32-bit Chrome running on 64-bit Windows via WOW64: X64_ARCHITECTURE |
+// 64-bit Chrome running on 64-bit Windows: X64_ARCHITECTURE |
+BASE_API WindowsArchitecture GetWindowsArchitecture(); |
- static OSInfo* GetInstance(); |
- |
- Version version() const { return version_; } |
- // The next two functions return arrays of values, [major, minor(, build)]. |
- VersionNumber version_number() const { return version_number_; } |
- ServicePack service_pack() const { return service_pack_; } |
- WindowsArchitecture architecture() const { return architecture_; } |
- int processors() const { return processors_; } |
- size_t allocation_granularity() const { return allocation_granularity_; } |
- WOW64Status wow64_status() const { return wow64_status_; } |
- |
- // Like wow64_status(), but for the supplied handle instead of the current |
- // process. This doesn't touch member state, so you can bypass the singleton. |
- static WOW64Status GetWOW64StatusForProcess(HANDLE process_handle); |
- |
- private: |
- OSInfo(); |
- ~OSInfo(); |
- |
- Version version_; |
- VersionNumber version_number_; |
- ServicePack service_pack_; |
- WindowsArchitecture architecture_; |
- int processors_; |
- size_t allocation_granularity_; |
- WOW64Status wow64_status_; |
- |
- friend struct DefaultSingletonTraits<OSInfo>; |
- DISALLOW_COPY_AND_ASSIGN(OSInfo); |
+enum WOW64Status { |
+ WOW64_DISABLED, |
+ WOW64_ENABLED, |
+ WOW64_UNKNOWN, |
}; |
-// Because this is by far the most commonly-requested value from the above |
-// singleton, we add a global-scope accessor here as syntactic sugar. |
-BASE_API Version GetVersion(); |
+// Returns whether this process is running under WOW64 (the wrapper that allows |
+// 32-bit processes to run on 64-bit versions of Windows). This will return |
+// WOW64_DISABLED for both "32-bit Chrome on 32-bit Windows" and "64-bit Chrome |
+// on 64-bit Windows". WOW64_UNKNOWN means "an error occurred", e.g. the |
+// process does not have sufficient access rights to determine this. |
+BASE_API WOW64Status GetWOW64Status(); |
+// Like GetWOW64Status(), but for the supplied handle instead of the current |
+// process. |
+BASE_API WOW64Status GetWOW64StatusForProcess(HANDLE process_handle); |
+ |
} // namespace win |
} // namespace base |