Partager via


OSVERSIONINFOEXW, structure (wdm.h)

La structure RTL_OSVERSIONINFOEXW contient des informations de 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 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 de cinq. Pour plus d’informations, consultez le tableau des remarques.

dwMinorVersion

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

dwBuildNumber

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

dwPlatformId

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

szCSDVersion[128]

Chaîne de version de 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 peut ne pas initialiser cette chaîne. Initialisez szCSDVersion à zéro (chaîne vide) avant l’appel à RtlGetVersion.

wServicePackMajor

Numéro de version principal du dernier Service Pack installé sur le système. Par exemple, pour Service Pack 3, le numéro de version principale est de 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 secondaire est égal à zéro.

wSuiteMask

Suites de produits disponibles sur le système. Ce membre est défini sur zéro ou sur l’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 Enterprise, Windows Server 2003, Enterprise Edition ou Windows 2000 Advanced Server est installé.
VER_SUITE_EMBEDDEDNT Windows XP Embedded est installé.
VER_SUITE_PERSONAL Windows Vista Home Premium, Windows Vista Home Basic ou Windows XP Home Edition 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é une fois sur le système, mais a peut-être é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 sont installés. Cette valeur est toujours définie. Si VER_SUITE_TERMINAL est défini mais que VER_SUITE_SINGLEUSERTS n’est pas défini, le système d’exploitation s’exécute en mode serveur d’application.
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 de VER_SUITE_SMALLBUSINESS_RESTRICTED sont définis lorsque cette suite de produits est installée. Si vous mettez à niveau cette installation vers Windows Server, Standard Edition, 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 été installé précédemment sur ce système. Si cette installation est mise à niveau vers Windows Server, Enterprise Edition, 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 version ultérieure
VER_NT_SERVER Serveur Windows 2000 ou version ultérieure

wReserved

Réservé pour une utilisation ultérieure.

Remarques

Les informations contenues dans cette structure incluent les numéros de version principale et mineure, 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.

L’utilisation des informations de version n’est pas toujours la meilleure façon 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 futures versions 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 Autre
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 Sans objet
Windows XP Professional x64 Edition (voir remarque) 5.2 5 2 wProductType == VER_NT_WORKSTATION
Windows XP 5.1 5 1 Sans objet
Windows 2000 5.0 5 0 Sans objet

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

Exigences

Exigence Valeur
d’en-tête wdm.h (include Ntddk.h)

Voir aussi

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo