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