Structure OSVERSIONINFOA (winnt.h)

Contient des informations sur la version du système d’exploitation. Les informations incluent les numéros de version principale et mineure, un numéro de build, un identificateur de plateforme et un texte descriptif sur le système d’exploitation. Cette structure est utilisée avec la fonction GetVersionEx .

Pour obtenir des informations de version supplémentaires, utilisez plutôt la structure OSVERSIONINFOEX avec GetVersionEx .

Syntaxe

typedef struct _OSVERSIONINFOA {
  DWORD dwOSVersionInfoSize;
  DWORD dwMajorVersion;
  DWORD dwMinorVersion;
  DWORD dwBuildNumber;
  DWORD dwPlatformId;
  CHAR  szCSDVersion[128];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;

Membres

dwOSVersionInfoSize

Taille de cette structure de données, en octets. Définissez ce membre sur sizeof(OSVERSIONINFO).

dwMajorVersion

Numéro de version principal du système d’exploitation. Pour plus d'informations, consultez la section Notes.

dwMinorVersion

Numéro de version secondaire du système d’exploitation. Pour plus d'informations, consultez la section Notes.

dwBuildNumber

Numéro de build du système d’exploitation.

dwPlatformId

Plateforme du système d’exploitation. Ce membre peut être la valeur suivante.

Valeur Signification
VER_PLATFORM_WIN32_NT
2
Le système d’exploitation est Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP ou Windows 2000.

szCSDVersion[128]

Chaîne terminée par null, telle que « Service Pack 3 », qui indique le dernier Service Pack installé sur le système. Si aucun Service Pack n’a été installé, la chaîne est vide.

Remarques

S’appuyer sur les informations de version n’est pas la meilleure façon de tester une fonctionnalité. Au lieu de cela, reportez-vous à la documentation pour connaître la fonctionnalité qui vous intéresse. Pour plus d’informations sur les techniques courantes de détection des fonctionnalités, consultez Version du système d’exploitation.

Si vous devez avoir besoin d’un système d’exploitation particulier, veillez à l’utiliser comme version minimale prise en charge, plutôt que de concevoir le test pour le système d’exploitation unique. De cette façon, votre code de détection continuera à fonctionner sur les versions futures de Windows.

Le tableau suivant récapitule les valeurs retournées par les versions prises en charge de Windows. Utilisez les informations de la colonne intitulée « Autre » pour faire la distinction entre les systèmes d’exploitation avec des numéros de version identiques.

Système d’exploitation Numéro de version dwMajorVersion dwMinorVersion Autres
Windows 10 10.0* 10 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2016 10.0* 10 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 8.1 6.3* 6 3 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2012 R2 6.3* 6 3 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 8 6.2 6 2 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2012 6.2 6 2 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 7 6.1 6 1 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2008 R2 6.1 6 1 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Server 2008 6.0 6 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Vista 6.0 6 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2003 R2 5.2 5 2 GetSystemMetrics(SM_SERVERR2) != 0
Windows Server 2003 5.2 5 2 GetSystemMetrics(SM_SERVERR2) == 0
Windows XP 5,1 5 1 Non applicable
Windows 2000 5.0 5 0 Non applicable
*Pour les applications qui ont été manifestées pour Windows 8.1 ou Windows 10. Les applications qui ne se manifestent pas pour Windows 8.1 ou Windows 10 retournent la valeur de version du système d’exploitation Windows 8 (6.2). Pour manifester vos applications pour Windows 8.1 ou Windows 10, reportez-vous à Ciblage de votre application pour Windows.
 

Exemples

Pour obtenir un exemple, consultez Obtention de la version système.

Notes

L’en-tête winnt.h définit OSVERSIONINFO en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête winnt.h (inclure Windows.h)

Voir aussi

OSVERSIONINFOEX

API d’assistance de version