IoIsWdmVersionAvailable 함수(wdm.h)
IoIsWdmVersionAvailable 루틴은 지정된 WDM 버전이 운영 체제에서 지원되는지 여부를 확인합니다.
구문
BOOLEAN IoIsWdmVersionAvailable(
[in] UCHAR MajorVersion,
[in] UCHAR MinorVersion
);
매개 변수
[in] MajorVersion
요청된 WDM의 주 버전 번호를 지정합니다.
[in] MinorVersion
요청된 WDM의 부 버전 번호를 지정합니다.
반환 값
운영 체제에서 제공하는 WDM 버전이 요청되는 WDM의 버전 수보다 크거나 같으면 IoIsWdmVersionAvailable은 TRUE를 반환합니다. 그렇지 않으면 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) |