* ntdll.h (RtlGetVersion): Declare.

* wincap.cc (wincapc::init): Rather than GetVersionEx, call
	RtlGetVersion which is not crippled by missing Windows 8.1 manifest.
	* wincap.h (wincapc): Change type of version to RTL_OSVERSIONINFOEXW.
	Align formatting of all class members.
This commit is contained in:
Corinna Vinschen 2013-11-19 22:21:11 +00:00
parent f8863cbe54
commit c9f36df332
5 changed files with 20 additions and 7 deletions

View File

@ -1,3 +1,11 @@
2013-11-19 Corinna Vinschen <corinna@vinschen.de>
* ntdll.h (RtlGetVersion): Declare.
* wincap.cc (wincapc::init): Rather than GetVersionEx, call
RtlGetVersion which is not crippled by missing Windows 8.1 manifest.
* wincap.h (wincapc): Change type of version to RTL_OSVERSIONINFOEXW.
Align formatting of all class members.
2013-11-19 Corinna Vinschen <corinna@vinschen.de>
* wincap.cc (wincapc::init): Revert previous change. It's not working.

View File

@ -1390,6 +1390,7 @@ extern "C"
PBOOLEAN);
NTSTATUS NTAPI RtlGetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR, PSID *,
PBOOLEAN);
NTSTATUS NTAPI RtlGetVersion (PRTL_OSVERSIONINFOEXW);
PSID_IDENTIFIER_AUTHORITY NTAPI RtlIdentifierAuthoritySid (PSID);
VOID NTAPI RtlInitEmptyUnicodeString (PUNICODE_STRING, PCWSTR, USHORT);
VOID NTAPI RtlInitAnsiString (PANSI_STRING, PCSTR);

View File

@ -56,3 +56,7 @@ Bug fixes:
- Fix typos in cygcheck which could crash Windows 8 and 8.1 machines.
Fixes: http://cygwin.com/ml/cygwin/2013-11/msg00334.html
- Show OS version correctly even on Windows 8.1 and Server 2012 R2.
Fixes: http://cygwin.com/ml/cygwin/2013-11/msg00343.html

View File

@ -172,8 +172,8 @@ wincapc::init ()
return; // already initialized
GetSystemInfo (&system_info);
version.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
GetVersionEx (reinterpret_cast<LPOSVERSIONINFO>(&version));
version.dwOSVersionInfoSize = sizeof (RTL_OSVERSIONINFOEXW);
RtlGetVersion (&version);
switch (version.dwMajorVersion)
{

View File

@ -43,11 +43,11 @@ struct wincaps
class wincapc
{
SYSTEM_INFO system_info;
OSVERSIONINFOEX version;
char osnam[40];
ULONG_PTR wow64;
void *caps;
SYSTEM_INFO system_info;
RTL_OSVERSIONINFOEXW version;
char osnam[40];
ULONG_PTR wow64;
void *caps;
public:
void init ();