GetVersionEx() depreciated, what should be used instead for Windows 7/8/10?

Bill Stewart bstewart@iname.com
Wed Mar 20 14:26:01 GMT 2024


On Wed, Mar 20, 2024 at 5:40 AM Christian Franke wrote:

Corinna Vinschen via Cygwin wrote:
>
> > For Cygwin apps, this occured when you built, say, an executable under
> > Windows 8.1 before Windows 10 support was added to the Cygwin toolchain:
> > the manifest linked to the Cygwin executable didn't yet contain a GUID
> > entry for Windows 10 support.
> >
> > In this case, RtlGetVersion returns an OS version 6.3 even when running
> > under the 10.0 kernel.  This behaviour exists back 'til Windows Vista.
>
> Could not reproduce the latter on Win10. I tested with recent Win10 and
> Win11 and also found a Win10 1511 (and Slackware 1.1.2, Win3.1, OS/2,
> ...) in my VM image museum.
>
> Regardless of the exe manifest, RtlGetVersion and RtlGetNtVersionNumbers
> return the correct versions:
> 10.0.22621 (Win11 22H2)
> 10.0.19045 (Win10 22H2)
> 10.0.10586 (Win10 1511)
>
> Without a manifest, GetVersionEx returns:
> 6.2.9200 (Win8)


Thanks for testing. That was my recollection (RtlGetVersion is not subject
to manifesting).

Bill


More information about the Cygwin mailing list