Obtendo a versão do sistema operacional Windows programaticamente

Estou tentando buscar a versão do Windows com c # na minha máquina com Windows 10.

Eu sempre recebo esses valores (com C # \ C ++):

Maior: 6

Menor: 2

Qual é o sistema operacional Windows 8,de acordo com o MSDN

Código c #:

var major = OperatingSystem.Version.Major
var minor  = OperatingSystem.Version.Minor

Código C ++

void print_os_info()
{
    //http://stackoverflow.com/questions/1963992/check-windows-version
    OSVERSIONINFOW info;
    ZeroMemory(&info, sizeof(OSVERSIONINFOW));
    info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);

    LPOSVERSIONINFOW lp_info = &info;
    GetVersionEx(lp_info);

    printf("Windows version: %u.%u\n", info.dwMajorVersion, info.dwMinorVersion);
}

O Windows 10 supõe estar com aqueles:

Maior: 10

Menor: 0 *

(Quando estou retirando um arquivo de despejo do processo em execução, posso ver que a versão do SO desse arquivo está definida como 10.0)

criado por: 10.0.10586.0 (th2_release.151029-1700)

O que estou perdendo aqui?

questionAnswers(6)

yourAnswerToTheQuestion