Partager via


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)

Voir aussi

RtlIsNtDdiVersionAvailable