OSVERSIONINFOEXW, structure (wdm.h)
La structure RTL_OSVERSIONINFOEXW contient des informations sur la version du système d’exploitation.
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;
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.
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.
Condition requise | Valeur |
---|---|
En-tête | wdm.h (include Ntddk.h) |