From: <sv...@op...> - 2024-08-15 18:49:41
|
Author: manx Date: Thu Aug 15 20:49:29 2024 New Revision: 21457 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21457 Log: Merged revision(s) 21454 from trunk/OpenMPT: [Fix] mpt/base/detect_os.hpp: Apparently during the transition period from Windows 10 to Windows 11, Microsoft missed adding properly distinguishing NTDDI version macros for the versions of Windows 10 and Windows 11 with the same year version moniker. This caused us to be confused which NTDDI version is meant to imply Windows 10 vs Windows 11. This appears to be cleaned up in the latest SDK. Adjust our macros accordingly. [Fix] mpt/osinfo/windows_version.hpp: Support all intermediate Windows 10 and Windows 11 versions. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/base/detect_os.hpp branches/OpenMPT-1.31/src/mpt/osinfo/windows_version.hpp Modified: branches/OpenMPT-1.31/src/mpt/base/detect_os.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/base/detect_os.hpp Thu Aug 15 20:48:57 2024 (r21456) +++ branches/OpenMPT-1.31/src/mpt/base/detect_os.hpp Thu Aug 15 20:49:29 2024 (r21457) @@ -52,13 +52,14 @@ #define MPT_WIN_10_1903 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x07) // NTDDI_WIN10_19H1 1903/19H1 #define MPT_WIN_10_1909 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x08) // NTDDI_WIN10_VB 1909/19H2 #define MPT_WIN_10_2004 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x09) // NTDDI_WIN10_MN 2004/20H1 - // 20H2 - // 21H1 -#define MPT_WIN_10_21H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0a) // NTDDI_WIN10_FE 21H2 - // 22H2 - -#define MPT_WIN_11 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0b) // NTDDI_WIN10_CO 21H2 -#define MPT_WIN_11_22H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0c) // NTDDI_WIN10_NI 22H2 +#define MPT_WIN_10_20H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0a) // NTDDI_WIN10_FE 20H2 +#define MPT_WIN_10_21H1 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0b) // NTDDI_WIN10_CO 21H1 +#define MPT_WIN_10_21H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0c) // NTDDI_WIN10_NI 21H2 +#define MPT_WIN_10_22H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0d) // NTDDI_WIN10_CU 22H2 + +#define MPT_WIN_11 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0e) // NTDDI_WIN11_ZN 21H2 +#define MPT_WIN_11_22H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0f) // NTDDI_WIN11_GA 22H2 +#define MPT_WIN_11_23H2 MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x10) // NTDDI_WIN11_GE 23H2 // MPT_WIN_API_DESKTOP : Windows 8/10 Desktop Application (Win32) // MPT_WIN_API_UNIVERSAL : Windows 10 Store App / Universal App @@ -227,13 +228,25 @@ static_assert(NTDDI_WIN10_MN == MPT_WIN_10_2004); #endif #ifdef NTDDI_WIN10_FE -static_assert(NTDDI_WIN10_FE == MPT_WIN_10_21H2); +static_assert(NTDDI_WIN10_FE == MPT_WIN_10_20H2); #endif #ifdef NTDDI_WIN10_CO -static_assert(NTDDI_WIN10_CO == MPT_WIN_11); +static_assert(NTDDI_WIN10_CO == MPT_WIN_10_21H1); #endif #ifdef NTDDI_WIN10_NI -static_assert(NTDDI_WIN10_NI == MPT_WIN_11_22H2); +static_assert(NTDDI_WIN10_NI == MPT_WIN_10_21H2); +#endif +#ifdef NTDDI_WIN10_CU +static_assert(NTDDI_WIN10_CU == MPT_WIN_10_22H2); +#endif +#ifdef NTDDI_WIN11_ZN +static_assert(NTDDI_WIN11_ZN == MPT_WIN_11); +#endif +#ifdef NTDDI_WIN11_GA +static_assert(NTDDI_WIN11_GA == MPT_WIN_11_22H2); +#endif +#ifdef NTDDI_WIN11_GE +static_assert(NTDDI_WIN11_GE == MPT_WIN_11_23H2); #endif #endif #if defined(WINAPI_FAMILY) Modified: branches/OpenMPT-1.31/src/mpt/osinfo/windows_version.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/osinfo/windows_version.hpp Thu Aug 15 20:48:57 2024 (r21456) +++ branches/OpenMPT-1.31/src/mpt/osinfo/windows_version.hpp Thu Aug 15 20:49:29 2024 (r21457) @@ -131,18 +131,20 @@ static mpt::osinfo::windows::Version FromSDK() noexcept { // Initialize to used SDK version -#if MPT_WINNT_AT_LEAST(MPT_WIN_11_22H2) +#if MPT_WINNT_AT_LEAST(MPT_WIN_11_23H2) + return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 22631, 0); +#elif MPT_WINNT_AT_LEAST(MPT_WIN_11_22H2) return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 22621, 0); #elif MPT_WINNT_AT_LEAST(MPT_WIN_11) // 21H2 return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 22000, 0); -//#elif // 22H2 -// return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 19045, 0); +#elif MPT_WINNT_AT_LEAST(MPT_WIN_10_22H2) + return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 19045, 0); #elif MPT_WINNT_AT_LEAST(MPT_WIN_10_21H2) return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 19044, 0); -//#elif // 21H1 -// return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 19043, 0); -//#elif // 20H2 -// return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 19042, 0); +#elif MPT_WINNT_AT_LEAST(MPT_WIN_10_21H1) + return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 19043, 0); +#elif MPT_WINNT_AT_LEAST(MPT_WIN_10_20H2) + return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 19042, 0); #elif MPT_WINNT_AT_LEAST(MPT_WIN_10_2004) return mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 19041, 0); #elif MPT_WINNT_AT_LEAST(MPT_WIN_10_1909) |