Funzione IoIsWdmVersionAvailable (wdm.h)
La routine IoIsWdmVersionAvailable controlla se una determinata versione WDM è supportata dal sistema operativo.
Sintassi
BOOLEAN IoIsWdmVersionAvailable(
[in] UCHAR MajorVersion,
[in] UCHAR MinorVersion
);
Parametri
[in] MajorVersion
Specifica il numero di versione principale di WDM richiesto.
[in] MinorVersion
Specifica il numero di versione secondaria di WDM richiesto.
Valore restituito
IoIsWdmVersionAvailable restituisce TRUE se la versione di WDM fornita dal sistema operativo è maggiore o uguale al numero di versione di WDM richiesto. In caso contrario, restituisce FALSE.
Commenti
I driver devono usare la routine RtlIsNtDdiVersionAvailable anziché la routine IoIsWdmVersionAvailable .
I driver multipiattaforma devono usare questa routine per controllare la versione wdm prima di eseguire qualsiasi operazione che varia in base alla piattaforma o non sono supportate in tutte le versioni di WDM.
Le costanti WDM_MAJORVERSION e WDM_MINORVERSION, definite nel file di intestazione Wdm.h, specificano i numeri di versione principale e secondaria wdm per la versione corrente di Windows. Di seguito è elencata la versione WDM fornita con ogni sistema operativo.
Sistema operativo | Versione principale di WDM | Versione secondaria di 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 |
Si noti che il numero di versione secondaria è definito come valore esadecimale.
Le versioni successive di WDM supportano tutte le funzionalità disponibili nelle versioni precedenti di WDM; ovvero, ogni versione di WDM è un superset della versione precedente di WDM.
La chiamata seguente restituisce TRUE in uno dei sistemi operativi elencati, perché tutti questi sistemi supportano tutte le funzionalità di WDM 1.0:
bVersion = IoIsWdmVersionAvailable(1,0);
L'esempio seguente mostra come un driver può rilevare dinamicamente il sistema operativo corrente:
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.
//
}
Come illustrato nell'esempio, la chiamata a IoIsWdmVersionAvailable(1, 5) restituisce TRUE in Windows Me, Windows 2000 e tutti i sistemi operativi riusciti, ma FALSE in Windows 98 e Windows 98 SE.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |