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) |