The reason there isn’t a Windows 9 is because there was a common test for windows versions that went something like this:
std::string winVer = getWinVerStr();
if (winVer.find(“Windows 9”) != -1)
{
// This is windows 95 or 98
}
A good chunk of older programs would likely have issues.
WMI was introduced in XP (I think? Was it later?) and asking WMI for the version string was pretty common.