Função IoIsWdmVersionAvailable (wdm.h)

A rotina IoIsWdmVersionAvailable verifica se uma determinada versão do WDM tem suporte no sistema operacional.

Sintaxe

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

Parâmetros

[in] MajorVersion

Especifica o número de versão principal do WDM solicitado.

[in] MinorVersion

Especifica o número de versão secundária do WDM solicitado.

Retornar valor

IoIsWdmVersionAvailable retornará TRUE se a versão do WDM que o sistema operacional fornece for maior ou igual ao número de versão do WDM que está sendo solicitado. Caso contrário, retornará FALSE.

Comentários

Os drivers devem usar a rotina RtlIsNtDdiVersionAvailable em vez da rotina IoIsWdmVersionAvailable .

Os drivers multiplataforma devem usar essa rotina para marcar a versão do WDM antes de executar as operações que variam de acordo com a plataforma ou que não têm suporte em todas as versões do WDM.

As constantes WDM_MAJORVERSION e WDM_MINORVERSION, definidas no arquivo de cabeçalho Wdm.h, especificam os números de versão principal e secundária do WDM para a versão atual do Windows. O seguinte lista a versão do WDM fornecida com cada sistema operacional.

Sistema operacional Versão principal do WDM Versão secundária do 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

Observe que o número de versão secundária é definido como um valor hexadecimal.

Versões posteriores do WDM dão suporte a todos os recursos disponíveis em versões anteriores do WDM; ou seja, cada versão do WDM é um superconjunto da versão anterior do WDM.

A chamada a seguir retorna TRUE em qualquer um dos sistemas operacionais listados, pois todos esses sistemas dão suporte a todos os recursos do WDM 1.0:

bVersion = IoIsWdmVersionAvailable(1,0);

O exemplo a seguir mostra como um driver pode detectar dinamicamente o sistema operacional atual:

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 mostra o exemplo, chamar IoIsWdmVersionAvailable(1, 5) retorna TRUE no Windows Me, Windows 2000 e todos os sistemas operacionais bem-sucedidos, mas FALSE no Windows 98 e windows 98 SE.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Confira também

RtlIsNtDdiVersionAvailable