| Index: telemetry/telemetry/internal/platform/win_platform_backend.py
|
| diff --git a/telemetry/telemetry/internal/platform/win_platform_backend.py b/telemetry/telemetry/internal/platform/win_platform_backend.py
|
| index d43689276b55bdc5ef8e90d00709e518aa63d50d..58240665afac910fc7fb264d38523de24c00348f 100644
|
| --- a/telemetry/telemetry/internal/platform/win_platform_backend.py
|
| +++ b/telemetry/telemetry/internal/platform/win_platform_backend.py
|
| @@ -36,6 +36,10 @@ try:
|
| import win32gui # pylint: disable=import-error
|
| import win32pipe # pylint: disable=import-error
|
| import win32process # pylint: disable=import-error
|
| + try:
|
| + import winreg # pylint: disable=import-error
|
| + except ImportError:
|
| + import _winreg as winreg # pylint: disable=import-error
|
| import win32security # pylint: disable=import-error
|
| except ImportError:
|
| pywintypes = None
|
| @@ -48,6 +52,7 @@ except ImportError:
|
| win32pipe = None
|
| win32process = None
|
| win32security = None
|
| + winreg = None
|
|
|
|
|
| def _InstallWinRing0():
|
| @@ -238,12 +243,22 @@ class WinPlatformBackend(desktop_platform_backend.DesktopPlatformBackend):
|
| return os_version_module.VISTA
|
| if os_version.startswith('6.1.'):
|
| return os_version_module.WIN7
|
| - if os_version.startswith('6.2.'):
|
| - return os_version_module.WIN8
|
| - if os_version.startswith('10.'):
|
| + # The version of python.exe we commonly use (2.7) is only manifested as
|
| + # being compatible with Windows versions up to 8. Therefore Windows *lies*
|
| + # to python about the version number to keep it runnable on Windows 10.
|
| + key_name = r'Software\Microsoft\Windows NT\CurrentVersion'
|
| + key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, key_name)
|
| + value, _ = winreg.QueryValueEx(key, 'CurrentMajorVersionNumber')
|
| + key.Close()
|
| + if value == 10:
|
| return os_version_module.WIN10
|
| -
|
| - raise NotImplementedError('Unknown win version %s.' % os_version)
|
| + elif os_version.startswith('6.2.'):
|
| + return os_version_module.WIN8
|
| + elif os_version.startswith('6.3.'):
|
| + return os_version_module.WIN81
|
| + raise NotImplementedError(
|
| + 'Unknown win version: %s, CurrentMajorVersionNumber: %s' %
|
| + (os_version, value))
|
|
|
| def CanFlushIndividualFilesFromSystemCache(self):
|
| return True
|
|
|