Fonction IoIsWdmVersionAvailable (wdm.h)
La routine IoIsWdmVersionAvailable vérifie si une version WDM donnée est prise en charge par le système d’exploitation.
Syntaxe
BOOLEAN IoIsWdmVersionAvailable(
[in] UCHAR MajorVersion,
[in] UCHAR MinorVersion
);
Paramètres
[in] MajorVersion
Spécifie le numéro de version principale de WDM demandé.
[in] MinorVersion
Spécifie le numéro de version secondaire de WDM demandé.
Valeur retournée
IoIsWdmVersionAvailable retourne TRUE si la version de WDM que le système d’exploitation fournit est supérieure ou égale au numéro de version de WDM demandé. Sinon, il retourne FALSE.
Remarques
Les pilotes doivent utiliser la routine RtlIsNtDdiVersionAvailable au lieu de la routine IoIsWdmVersionAvailable .
Les pilotes multiplateformes doivent utiliser cette routine pour case activée la version WDM avant d’effectuer des opérations qui varient selon la plateforme ou qui ne sont pas prises en charge dans toutes les versions de WDM.
Les constantes WDM_MAJORVERSION et WDM_MINORVERSION, définies dans le fichier d’en-tête Wdm.h, spécifient les numéros de version principale et secondaire WDM pour la version actuelle de Windows. La liste suivante répertorie la version WDM fournie avec chaque système d’exploitation.
Système d’exploitation | Version majeure de WDM | Version mineure de WDM |
---|---|---|
Windows 7 | 6 | 0x00 |
Windows Server 2008 R2 | 6 | 0x00 |
Windows Server 2008 | 6 | 0x00 |
Windows Vista | 6 | 0x00 |
Windows Server 2003 | 1 | 0x30 |
Windows XP | 1 | 0x20 |
Windows 2000 | 1 | 0x10 |
Windows Me | 1 | 0x05 |
Windows 98 | 1 | 0x00 |
Notez que le numéro de version secondaire est défini en tant que valeur hexadécimale.
Les versions ultérieures de WDM prennent en charge toutes les fonctionnalités disponibles dans les versions antérieures de WDM ; autrement dit, chaque version de WDM est un sur-ensemble de la version précédente de WDM.
L’appel suivant retourne TRUE sur l’un des systèmes d’exploitation répertoriés, car tous ces systèmes prennent en charge toutes les fonctionnalités de WDM 1.0 :
bVersion = IoIsWdmVersionAvailable(1,0);
L’exemple suivant montre comment un pilote peut détecter dynamiquement le système d’exploitation actuel :
if (IoIsWdmVersionAvailable(1, 0x10)) {
//
//If WDM 1.10 is supported, this is Windows 2000
//or better.
//
} else if (IoIsWdmVersionAvailable(1, 5)) {
//
//If WDM 1.05 is supported, this is Windows ME
//or better.
//
} else {
//
//WDM 1.0 is always supported, so this is Windows 98,
//Windows 98 SE, or better.
//
}
Comme le montre l’exemple, l’appel de IoIsWdmVersionAvailable(1, 5) renvoie TRUE sur Windows Me, Windows 2000 et tous les systèmes d’exploitation suivants, mais FALSE sur Windows 98 et Windows 98 SE.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport),IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |