@@ -270,11 +270,34 @@ char* php_get_windows_name()
270
270
271
271
if (VER_PLATFORM_WIN32_NT == osvi .dwPlatformId && osvi .dwMajorVersion >= 10 ) {
272
272
if (osvi .dwMajorVersion == 10 ) {
273
- if ( osvi .dwMinorVersion == 0 ) {
274
- if ( osvi .wProductType == VER_NT_WORKSTATION ) {
275
- major = "Windows 10" ;
273
+ if (osvi .dwMinorVersion == 0 ) {
274
+ if (osvi .wProductType == VER_NT_WORKSTATION ) {
275
+ if (osvi .dwBuildNumber >= 22000 ) {
276
+ major = "Windows 11" ;
277
+ } else {
278
+ major = "Windows 10" ;
279
+ }
276
280
} else {
277
- major = "Windows Server 2016" ;
281
+ if (osvi .dwBuildNumber >= 20348 ) {
282
+ major = "Windows Server 2022" ;
283
+ } else if (osvi .dwBuildNumber >= 19042 ) {
284
+ major = "Windows Server, version 20H2" ;
285
+ } else if (osvi .dwBuildNumber >= 19041 ) {
286
+ major = "Windows Server, version 2004" ;
287
+ } else if (osvi .dwBuildNumber >= 18363 ) {
288
+ major = "Windows Server, version 1909" ;
289
+ } else if (osvi .dwBuildNumber >= 18362 ) {
290
+ major = "Windows Server, version 1903" ;
291
+ } else if (osvi .dwBuildNumber >= 17763 ) {
292
+ // could also be Windows Server, version 1809, but there's no easy way to tell
293
+ major = "Windows Server 2019" ;
294
+ } else if (osvi .dwBuildNumber >= 17134 ) {
295
+ major = "Windows Server, version 1803" ;
296
+ } else if (osvi .dwBuildNumber >= 16299 ) {
297
+ major = "Windows Server, version 1709" ;
298
+ } else {
299
+ major = "Windows Server 2016" ;
300
+ }
278
301
}
279
302
}
280
303
}
0 commit comments