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 principal de WDM demandé.

[in] MinorVersion

Spécifie le numéro de version secondaire de WDM demandé.

Valeur de retour

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, elle retourne FALSE.

Remarques

Les pilotes doivent utiliser la routine RtlIsNtDdiVersionAvailable au lieu de la routine IoIsWdmVersionAvailable.

Les pilotes multiplateformes doivent utiliser cette routine pour vérifier 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 principale WDM Version mineure 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 comme une 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 super-ensemble de la version WDM précédente.

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 l’illustre l’exemple, l’appel IoIsWdmVersionAvailable(1, 5) retourne TRUE sur Windows Me, Windows 2000 et tous les systèmes d’exploitation suivants, mais FAUX sur Windows 98 et Windows 98 SE.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête wdm.h (include 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