OSVERSIONINFOEXW, structure (wdm.h)

La structure RTL_OSVERSIONINFOEXW contient des informations sur la version du système d’exploitation.

Syntaxe

typedef struct _OSVERSIONINFOEXW {
  ULONG  dwOSVersionInfoSize;
  ULONG  dwMajorVersion;
  ULONG  dwMinorVersion;
  ULONG  dwBuildNumber;
  ULONG  dwPlatformId;
  WCHAR  szCSDVersion[128];
  USHORT wServicePackMajor;
  USHORT wServicePackMinor;
  USHORT wSuiteMask;
  UCHAR  wProductType;
  UCHAR  wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;

Membres

dwOSVersionInfoSize

Taille, en octets, d’une structure RTL_OSVERSIONINFOEXW . Ce membre doit être défini avant que la structure ne soit utilisée avec RtlGetVersion.

dwMajorVersion

Numéro de version principal du système d’exploitation. Par exemple, pour Windows 2000, le numéro de version principale est cinq. Pour plus d’informations, consultez le tableau dans Remarques.

dwMinorVersion

Numéro de version secondaire du système d’exploitation. Par exemple, pour Windows 2000, le numéro de version mineure est zéro. Pour plus d’informations, consultez le tableau dans Remarques.

dwBuildNumber

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

dwPlatformId

Plateforme du système d’exploitation. Pour les systèmes d’exploitation Win32 sur NT, RtlGetVersion retourne la valeur VER_PLATFORM_WIN32_NT.

szCSDVersion[128]

Chaîne de version du Service Pack. Ce membre contient une 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’est installé, RtlGetVersion risque de ne pas initialiser cette chaîne. Initialisez szCSDVersion sur zéro (chaîne vide) avant l’appel à RtlGetVersion.

wServicePackMajor

Numéro de version principale du dernier Service Pack installé sur le système. Par exemple, pour Le Service Pack 3, le numéro de version principale est trois. Si aucun Service Pack n’a été installé, la valeur est égale à zéro.

wServicePackMinor

Numéro de version secondaire du dernier Service Pack installé sur le système. Par exemple, pour Service Pack 3, le numéro de version mineure est égal à zéro.

wSuiteMask

Suites de produits disponibles sur le système. Ce membre est défini sur zéro ou sur la valeur OR au niveau du bit d’une ou plusieurs des valeurs suivantes.

Valeur Signification
VER_SUITE_BACKOFFICE Les composants Microsoft BackOffice sont installés.
VER_SUITE_BLADE Windows Server 2003, Web Edition est installé.
VER_SUITE_COMPUTE_SERVER Windows Server 2003, Compute Cluster Edition est installé.
VER_SUITE_DATACENTER Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition ou Windows 2000 Datacenter Server est installé.
VER_SUITE_ENTERPRISE Windows Server 2008 Entreprise, Windows Server 2003, Êdition Entreprise ou Windows 2000 Advanced Server est installé.
VER_SUITE_EMBEDDEDNT Windows XP Embedded est installé.
VER_SUITE_PERSONAL Windows Vista Famille Premium, Windows Vista Famille Basic ou Windows XP Édition familiale est installé.
VER_SUITE_SINGLEUSERTS Le Bureau à distance est pris en charge, mais une seule session interactive est prise en charge. Cette valeur est définie, sauf si le système s’exécute en mode serveur d’applications.
VER_SUITE_SMALLBUSINESS (voir remarque) Microsoft Small Business Server a été installé sur le système, mais peut avoir été mis à niveau vers une autre version de Windows. Pour plus d’informations sur ce bit d’indicateur, consultez la section Remarques suivante.
VER_SUITE_SMALLBUSINESS_RESTRICTED Microsoft Small Business Server est installé avec la licence client restrictive en vigueur. Pour plus d’informations sur ce bit d’indicateur, consultez la section Remarques suivante.
VER_SUITE_STORAGE_SERVER Windows Storage Server 2003 R2 ou Windows Storage Server 2003 est installé.
VER_SUITE_TERMINAL Les services Terminal Server sont installés. Cette valeur est toujours définie. Si VER_SUITE_TERMINAL est défini mais VER_SUITE_SINGLEUSERTS ne l’est pas, le système d’exploitation s’exécute en mode serveur d’applications.
VER_SUITE_WH_SERVER Windows Home Server est installé.

Vous ne devez pas vous appuyer uniquement sur l’indicateur VER_SUITE_SMALLBUSINESS pour déterminer si Small Business Server est actuellement installé. Cet indicateur et l’indicateur VER_SUITE_SMALLBUSINESS_RESTRICTED sont définis lors de l’installation de cette suite de produits. Si vous mettez à niveau cette installation vers Windows Server, Édition Standard, l’indicateur VER_SUITE_SMALLBUSINESS_RESTRICTED est effacé, mais l’indicateur VER_SUITE_SMALLBUSINESS reste défini, ce qui, dans ce cas, indique que Small Business Server a déjà été installé sur ce système. Si cette installation est mise à niveau vers Windows Server, Êdition Entreprise, l’indicateur VER_SUITE_SMALLBUSINESS reste défini.

wProductType

Type de produit. Ce membre contient des informations supplémentaires sur le système. Ce membre peut être l’une des valeurs suivantes :

Valeur Signification
VER_NT_WORKSTATION Windows 2000 ou version professionnelle ultérieure
VER_NT_DOMAIN_CONTROLLER Contrôleur de domaine Windows 2000 ou ultérieur
VER_NT_SERVER Windows 2000 ou serveur ultérieur

wReserved

Réservé pour un usage futur.

Remarques

Les informations contenues dans cette structure incluent les numéros de version principale et secondaire, le numéro de build, l’identificateur de plateforme, les suites de produits installées et le dernier Service Pack installé sur le système. Cette structure est utilisée avec les routines RtlGetVersion et RtlVerifyVersionInfo .

S’appuyer sur les informations de version n’est pas toujours le meilleur moyen de tester si une fonctionnalité est disponible. Pour obtenir des conseils, reportez-vous à la documentation relative à la fonctionnalité qui vous intéresse.

Si possible, concevez le code de détection de version dans votre pilote pour permettre au pilote de s’exécuter sur les versions futures de Windows. Si votre pilote nécessite une version particulière du système d’exploitation, veillez à traiter cette version comme la version minimale prise en charge, et non comme la seule version sur laquelle le pilote peut s’exécuter.

Le tableau suivant récapitule les informations de version retournées par les versions prises en charge de Windows. Utilisez les informations de la colonne « Autre » ou du numéro de build 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 11 10.0 10 0 wProductType == VER_NT_WORKSTATION
Windows Server 2022 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows Server 2019 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows 10 (toutes les versions) 10.0 10 0 wProductType == VER_NT_WORKSTATION
Windows Server 2016 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows Server 2012 R2 6.3 6 3 wProductType != VER_NT_WORKSTATION
Windows 8.1 6.3 6 3 wProductType == VER_NT_WORKSTATION
Windows 8 6.2 6 2 wProductType == VER_NT_WORKSTATION
Windows Server 2012 6.2 6 2 wProductType != VER_NT_WORKSTATION
Windows 7 6.1 6 1 wProductType == VER_NT_WORKSTATION
Windows Server 2008 R2 6.1 6 1 wProductType != VER_NT_WORKSTATION
Windows Server 2008 6.0 6 0 wProductType != VER_NT_WORKSTATION
Windows Vista 6.0 6 0 wProductType == VER_NT_WORKSTATION
Windows Home Server 5.2 5 2 wSuiteMask == VER_SUITE_WH_SERVER
Windows Server 2003 5.2 5 2 Non applicable
Windows XP Professionnel x64 Edition (voir remarque) 5.2 5 2 wProductType == VER_NT_WORKSTATION
Windows XP 5,1 5 1 Non applicable
Windows 2000 5.0 5 0 Non applicable

Seul un pilote 64 bits en mode noyau peut s’exécuter sur Windows XP Professionnel Édition x64. Par conséquent, un pilote 32 bits en mode noyau peut omettre en toute sécurité la vérification de cette version de Windows.

Configuration requise

Condition requise Valeur
En-tête wdm.h (include Ntddk.h)

Voir aussi

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo