delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 0FC483858417 |
DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; |
s=default; t=1711034171; | |
bh=9sdp7SvTXDePgajfyfSI+RAtnAS49U4iMbwHoiWUXuk=; | |
h=Date:To:Subject:References:In-Reply-To:List-Id:List-Unsubscribe: | |
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: | |
From; | |
b=LUJhe7LbiY20Jzm7kYsyG9y8UvD4eZtB9/loIalBronEinuBGm5EyLSygN6dxRd09 | |
x7akyQdLkz2I1UkqD8iSimhN8x9ZiofhKrVAI2k1Ze3hrsNwxnYz4D6FavAaFmToZw | |
M+Z92XBCyfZEe5kbet8jbA4hBPajOJAnb1jnfhoI= | |
X-Original-To: | cygwin AT cygwin DOT com |
Delivered-To: | cygwin AT cygwin DOT com |
DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 48E8F3858CD1 |
Date: | Thu, 21 Mar 2024 16:15:45 +0100 |
To: | cygwin AT cygwin DOT com |
Subject: | Re: GetVersionEx() depreciated, what should be used instead for |
Windows 7/8/10? | |
Message-ID: | <ZfxPIbU5K_VgX5hZ@calimero.vinschen.de> |
Mail-Followup-To: | cygwin AT cygwin DOT com |
References: | <CALXu0UdrjFfhrBmBPNYepvMJ3hL7CPf1n6HEowxZgOxwdoy1TA AT mail DOT gmail DOT com> |
<b47b7092-716a-c626-a14d-e5847bc86926 AT t-online DOT de> | |
<CANV9t=S2BJ2d-_zNm3ZgVeerQ+ZEONQ4fjN1MXc6JVp+Gvrxsg AT mail DOT gmail DOT com> | |
<CALwydEs5ZTYqSxfZOp_hWobWQxFEeLGio8WoUCwTAM2eaph_sA AT mail DOT gmail DOT com> | |
<CANV9t=QHLHyv_jvvrCREpyrEX=JqmTdQvnmfUXbSKuvMrhHn9A AT mail DOT gmail DOT com> | |
<Zfm7ZqZBdMBaoEOM AT calimero DOT vinschen DOT de> | |
<0d8daf74-2861-8b08-b47c-28cf5d3b991f AT t-online DOT de> | |
<ZfszwBeYDxxApO9v AT calimero DOT vinschen DOT de> | |
<538aa134-b079-12ec-76fe-5a60fc77c3ee AT t-online DOT de> | |
MIME-Version: | 1.0 |
In-Reply-To: | <538aa134-b079-12ec-76fe-5a60fc77c3ee@t-online.de> |
X-BeenThere: | cygwin AT cygwin DOT com |
X-Mailman-Version: | 2.1.30 |
List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com> |
List-Unsubscribe: | <https://cygwin.com/mailman/options/cygwin>, |
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe> | |
List-Archive: | <https://cygwin.com/pipermail/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help> |
List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>, |
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe> | |
From: | Corinna Vinschen via Cygwin <cygwin AT cygwin DOT com> |
Reply-To: | cygwin AT cygwin DOT com |
Cc: | Corinna Vinschen <corinna-cygwin AT cygwin DOT com> |
Errors-To: | cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com |
Sender: | "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com> |
On Mar 21 09:58, Christian Franke via Cygwin wrote: > Corinna Vinschen via Cygwin wrote: > > On Mar 20 12:39, Christian Franke via Cygwin wrote: > > > Corinna Vinschen via Cygwin wrote: > > > > You have to create an application with an application manifest not > > > > supporting your OS. > > > > > > > > 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) I just gave it a try on W11. The results are even more funny than I anticipated: I created a simple application just calling GetVersionEx, RtlGetVersion and RtlGetNtVersionNumbers. Linked with our Cygwin default manifest claiming W10 compatibility, the result is the expected: GetVersionEx : 10.0.22631 RtlGetVersion : 10.0.22631 RtlGetNtVersionNumbers: 10.0.22631 The "Operating system context" in Task Manager is empty. Next I linked against a Windows 8.1 manifest: GetVersionEx : 6.3.9600 RtlGetVersion : 10.0.22631 RtlGetNtVersionNumbers: 10.0.22631 So GetVersionEx reports Windows 8.1, RtlGetVersion/ RtlGetNtVersionNumbers both report W10. The "Operating system context" in Task Manager reports "Windows 8.1" No surprise there. Next I linked against a Windows 7 manifest: GetVersionEx : 6.2.9200 RtlGetVersion : 10.0.22631 RtlGetNtVersionNumbers: 10.0.22631 So GetVersionEx reports Windows 8, not Windows 7. However, the "Operating system context" in Task Manager reports "Windows 7" I also tried this with a Vista manifest: GetVersionEx : 6.2.9200 RtlGetVersion : 10.0.22631 RtlGetNtVersionNumbers: 10.0.22631 "Windows Vista" So Task Manager reports the right context per the manifest, but GetVersionEx doesn't go below Windows 8. Same goes for Windows 10... GetVersionEx : 6.2.9200 RtlGetVersion : 10.0.19045 RtlGetNtVersionNumbers: 10.0.19045 "Windows Vista" as well as for Windows 8.1: GetVersionEx : 6.2.9200 RtlGetVersion : 6.3.9600 RtlGetNtVersionNumbers: 6.3.9600 "Windows Vista" So, yeah, with your observations especially on older W10 versions and with 8.1 doing the same thing, I guess we can safely drop the extra call to RtlGetNtVersionNumbers now. After such a long time, I don't know on which version of Windows we observed the problem. For those interested in patch forensics, I searched the archives and came up with two mail threads referring to GetVersionEx and RtlGetVersion: https://cygwin.com/pipermail/cygwin/2013-November/211795.html https://cygwin.com/pipermail/cygwin/2014-June/215836.html Unfortunately I found *no* thread talking about RtlGetNtVersionNumbers, so the only information we have now is the commit message of https://cygwin.com/cgit/newlib-cygwin/commit/?id=48511f3d3847c Thanks, Corinna -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |