Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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) |