I'd recommend using VerifyVersionInfo: http://msdn.microsoft.com/en-us/library/windows/desktop/ms725492(v=vs.85).aspx. It's supported from Win2k onward and isn't deprecated as of Win 8.1. I don't remember for sure if it's present in Windows CE and unfortunately I don't have my CE documentation handy at the moment.
I suspect that the previously linked 'Version Information Functions' are not quite as suited to what you want to do since I think you'd need to check the version of a particular file rather than the OS itself. Should this thread be moved to openssl-dev? Patrick Watson, CISSP Software Engineer Data Security & Electronic Payment Systems NCR Retail -----Original Message----- From: owner-openssl-us...@openssl.org [mailto:owner-openssl-us...@openssl.org] On Behalf Of Jakob Bohm Sent: Thursday, January 09, 2014 1:21 PM To: openssl-users@openssl.org Subject: Re: A small note on Windows 8 GetVersion() depreciation On 1/9/2014 6:46 AM, Dongsheng Song wrote: > [1] GetVersionEx may be altered or unavailable for releases after > Windows 8.1. Instead, use the Version Helper APIs. > > [1] http://msdn.microsoft.com/en-us/library/windows/desktop/ms724451%28v=vs.85%29.aspx Scandalous! According to that page, Microsoft has essentially sabotaged one of the first functions called by most language runtimes and also introduced rules to actively prevent applications from sanely dealing with OS differences. For instance, it seems there is no longer any interface to detect if the OS was made *after* the application code and may thus differ subtly from whatever the application knows about the OS-es in existence at the time. > I thinks use 'Version Information Functions'[2] is the better choice. > > [2] > http://msdn.microsoft.com/en-us/library/windows/desktop/ff468915%28v=v > s.85%29.aspx > Well, those functions (or something even more low-level in case Microsoft sabotages these too), could be a way to work around the sabotage introduced in Windows NT 6.3 (Marketed as 8.1). > > On Thu, Jan 9, 2014 at 3:11 AM, Jakob Bohm <jb-open...@wisemo.com> wrote: >> While I have not specifically checked the Windows 8 SDK, my extensive >> experience with the version detection APIs in Windows tells me the >> following: >> >> 1. GetVersion() is the only version-detection API available on older >> platform versions. Later platform versions added variants of >> GetVersionEx(), with each newer variant being available on less >> platforms. >> >> 2. The order of the bit fields returned by GetVersion() has >> historically confused many developers, therefore Microsoft has long >> told people to avoid it if they don't know what they are doing. >> At one point, even the editor of the GetVersion() documentation >> got confused! >> >> 3. Starting a few years ago, Microsoft began a trend of using the >> compiler "__declspec(deprecate)" mechanism to scare developers >> away from functions that are not really deprecated, just not >> recommended for some other reason. Those deprecations can >> usually be ignored safely by those with good reason to use those >> more portable APIs. >> >> So, if this is just another "political" compiler warning, there is >> little reason to head it. >> >> Otherwise, the GetVersionEx() function can be used as a replacement, >> but only by dropping support for Windows NT 3.10 and maybe Win32s (NT >> 3.50 and all the Win9x and WinCE variants include the basic form of >> GetVersionEx()). >> >> P.S. >> >> If there is still code in there to support 16 bit Windows 3.x, then >> that API includes only GetVersion(), and with a different >> specification than its 32/64 bit namesake. >> >> Enjoy Jakob -- Jakob Bohm, CIO, Partner, WiseMo A/S. http://www.wisemo.com Transformervej 29, 2730 Herlev, Denmark. Direct +45 31 13 16 10 This public discussion message is non-binding and may contain errors. WiseMo - Remote Service Management for PCs, Phones and Embedded ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org