Función IoIsWdmVersionAvailable (wdm.h)

La rutina IoIsWdmVersionAvailable comprueba si el sistema operativo admite una versión de WDM determinada.

Sintaxis

BOOLEAN IoIsWdmVersionAvailable(
  [in] UCHAR MajorVersion,
  [in] UCHAR MinorVersion
);

Parámetros

[in] MajorVersion

Especifica el número de versión principal de WDM solicitado.

[in] MinorVersion

Especifica el número de versión secundaria de WDM que se solicita.

Valor devuelto

IoIsWdmVersionAvailable devuelve TRUE si la versión de WDM que proporciona el sistema operativo es mayor o igual que el número de versión de WDM que se solicita. De lo contrario, devuelve FALSE.

Comentarios

Los controladores deben usar la rutina RtlIsNtDdiVersionAvailable en lugar de la rutina IoIsWdmVersionAvailable .

Los controladores multiplataforma deben usar esta rutina para comprobar la versión de WDM antes de realizar las operaciones que varían según la plataforma o no se admiten en todas las versiones de WDM.

Las constantes WDM_MAJORVERSION y WDM_MINORVERSION, que se definen en el archivo de encabezado Wdm.h, especifican los números de versión principal y secundaria de WDM para la versión actual de Windows. A continuación se muestra la versión de WDM proporcionada con cada sistema operativo.

Sistema operativo Versión principal de WDM Versión secundaria 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

Tenga en cuenta que el número de versión secundaria se define como un valor hexadecimal.

Las versiones posteriores de WDM admiten todas las características disponibles en versiones anteriores de WDM; es decir, cada versión de WDM es un superconjunto de la versión anterior de WDM.

La siguiente llamada devuelve TRUE en cualquiera de los sistemas operativos enumerados, ya que todos estos sistemas admiten todas las características de WDM 1.0:

bVersion = IoIsWdmVersionAvailable(1,0);

En el ejemplo siguiente se muestra cómo un controlador puede detectar dinámicamente el sistema operativo actual:

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.
    //
}

Como se muestra en el ejemplo, la llamada a IoIsWdmVersionAvailable(1, 5) devuelve TRUE en Windows Me, Windows 2000 y cualquier sistema operativo correcto, pero FALSE en Windows 98 y Windows 98 SE.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Consulte también

RtlIsNtDdiVersionAvailable