IoIsWdmVersionAvailable 함수(wdm.h)

IoIsWdmVersionAvailable 루틴은 지정된 WDM 버전이 운영 체제에서 지원되는지 여부를 확인합니다.

구문

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

매개 변수

[in] MajorVersion

요청된 WDM의 주 버전 번호를 지정합니다.

[in] MinorVersion

요청된 WDM의 부 버전 번호를 지정합니다.

반환 값

운영 체제에서 제공하는 WDM 버전이 요청되는 WDM의 버전 수보다 크거나 같으면 IoIsWdmVersionAvailableTRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.

설명

드라이버는 IoIsWdmVersionAvailable 루틴 대신 RtlIsNtDdiVersionAvailable 루틴 사용해야 합니다.

플랫폼 간 드라이버는 플랫폼마다 다르거나 모든 버전의 WDM에서 지원되지 않는 작업을 수행하기 전에 이 루틴을 사용하여 WDM 버전을 검사 합니다.

Wdm.h 헤더 파일에 정의된 WDM_MAJORVERSION 및 WDM_MINORVERSION 상수는 현재 버전의 Windows에 대한 WDM 주 및 부 버전 번호를 지정합니다. 다음은 각 운영 체제와 함께 제공되는 WDM 버전을 나열합니다.

운영 체제 WDM 주 버전 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

부 버전 번호는 16진수 값으로 정의됩니다.

이후 버전의 WDM은 이전 버전의 WDM에서 사용할 수 있는 모든 기능을 지원합니다. 즉, WDM의 각 버전은 이전 WDM 버전의 상위 집합입니다.

다음 호출은 나열된 운영 체제에서 TRUE 를 반환합니다. 이러한 모든 시스템은 WDM 1.0의 모든 기능을 지원하기 때문입니다.

bVersion = IoIsWdmVersionAvailable(1,0);

다음 예제에서는 드라이버가 현재 운영 체제를 동적으로 검색하는 방법을 보여 줍니다.

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

예제에서와 같이 IoIsWdmVersionAvailable(1, 5)을 호출하면 Windows Me, Windows 2000 및 성공한 운영 체제에서 TRUE 가 반환되지만 Windows 98 및 Windows 98 SE에서는 FALSE 가 반환됩니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

추가 정보

RtlIsNtDdiVersionAvailable