Compartilhar via


Função IoIsWdmVersionAvailable (wdm.h)

A rotina IoIsWdmVersionAvailable verifica se uma determinada versão do WDM tem suporte do 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.

Valor de retorno

IoIsWdmVersionAvailable retornará VERDADEIRO se a versão do WDM fornecida pelo sistema operacional for maior ou igual ao número de versão do WDM solicitado. Caso contrário, ele retornará FALSE.

Observações

Os drivers devem usar a rotina de rtlIsNtDdiVersionAvailable em vez da rotina de IoIsWdmVersionAvailable.

Os drivers multiplataforma devem usar essa rotina para verificar 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 VERDADEIRO no Windows Me, Windows 2000 e todos os sistemas operacionais bem-sucedidos, mas FALSE no Windows 98 e Windows 98 SE.

Requisitos

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

Consulte também

RtlIsNtDdiVersionAvailable