Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/utils/ChangeLog9
-rw-r--r--winsup/utils/cygcheck.cc18
2 files changed, 18 insertions, 9 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog
index cdda174cb..9797cc16b 100644
--- a/winsup/utils/ChangeLog
+++ b/winsup/utils/ChangeLog
@@ -1,5 +1,14 @@
2013-11-19 Corinna Vinschen <corinna@vinschen.de>
+ * cygcheck.cc (RtlGetVersion): Declare.
+ (dump_sysinfo): Call RtlGetVersion rather than GetVersionEx to get
+ correct OS info even on Windows 8.1. Don't check return value since
+ RtlGetVersion never fails per MSDN. Move fetching kernel32 module
+ handle where it's really needed. Drop temporary comment added by
+ previous checkin.
+
+2013-11-19 Corinna Vinschen <corinna@vinschen.de>
+
* cygcheck.cc (dump_sysinfo): Revert Windows 8.1 hack. It's not
working. Add a (hopefully temporary) comment.
diff --git a/winsup/utils/cygcheck.cc b/winsup/utils/cygcheck.cc
index 106577c9c..465bc7861 100644
--- a/winsup/utils/cygcheck.cc
+++ b/winsup/utils/cygcheck.cc
@@ -1422,6 +1422,8 @@ handle_unique_object_name (int opt, char *path)
return 1;
}
+extern "C" NTSTATUS NTAPI RtlGetVersion (PRTL_OSVERSIONINFOEXW);
+
static void
dump_sysinfo ()
{
@@ -1438,12 +1440,9 @@ dump_sysinfo ()
time (&now);
printf ("Current System Time: %s\n", ctime (&now));
- OSVERSIONINFOEX osversion;
- osversion.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
- if (!GetVersionEx (reinterpret_cast<LPOSVERSIONINFO>(&osversion)))
- display_error ("dump_sysinfo: GetVersionEx()");
-
- HMODULE k32 = GetModuleHandleW (L"kernel32.dll");
+ RTL_OSVERSIONINFOEXW osversion;
+ osversion.dwOSVersionInfoSize = sizeof (RTL_OSVERSIONINFOEXW);
+ RtlGetVersion (&osversion);
switch (osversion.dwPlatformId)
{
@@ -1451,6 +1450,7 @@ dump_sysinfo ()
is_nt = true;
if (osversion.dwMajorVersion == 6)
{
+ HMODULE k32 = GetModuleHandleW (L"kernel32.dll");
BOOL (WINAPI *GetProductInfo) (DWORD, DWORD, DWORD, DWORD, PDWORD) =
(BOOL (WINAPI *)(DWORD, DWORD, DWORD, DWORD, PDWORD))
GetProcAddress (k32, "GetProductInfo");
@@ -1468,7 +1468,7 @@ dump_sysinfo ()
strcpy (osname, osversion.wProductType == VER_NT_WORKSTATION
? "8" : "2012");
break;
- case 3: /* Unreached due to mainfest nonsense. */
+ case 3:
default:
osversion.dwMinorVersion = 3;
strcpy (osname, osversion.wProductType == VER_NT_WORKSTATION
@@ -1639,12 +1639,12 @@ dump_sysinfo ()
strcpy (osname, "??");
break;
}
- printf ("Windows %s Ver %lu.%lu Build %lu %s\n", osname,
+ printf ("Windows %s Ver %lu.%lu Build %lu %ls\n", osname,
osversion.dwMajorVersion, osversion.dwMinorVersion,
osversion.dwPlatformId == VER_PLATFORM_WIN32_NT ?
osversion.dwBuildNumber : (osversion.dwBuildNumber & 0xffff),
osversion.dwPlatformId == VER_PLATFORM_WIN32_NT ?
- osversion.szCSDVersion : "");
+ osversion.szCSDVersion : L"");
if (osversion.dwPlatformId == VER_PLATFORM_WIN32s
|| osversion.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)