다음을 통해 공유


VerifyVersionInfoA 함수(winbase.h)

운영 체제 버전 요구 사항 집합을 현재 실행 중인 시스템 버전의 해당 값과 비교합니다. 이 함수는 매니페스트 기반 동작의 적용을 받습니다. 자세한 내용은 주의 섹션을 참조하세요.

참고: 이 함수는 Windows 10 사용되지 않습니다. 자세한 내용은 Windows용 애플리케이션 대상 지정 을 참조하세요.

구문

BOOL VerifyVersionInfoA(
  [in] LPOSVERSIONINFOEXA lpVersionInformation,
  [in] DWORD              dwTypeMask,
  [in] DWORDLONG          dwlConditionMask
);

매개 변수

[in] lpVersionInformation

비교할 운영 체제 버전 요구 사항이 포함된 OSVERSIONINFOEX 구조체에 대한 포인터입니다. dwTypeMask 매개 변수는 비교할 정보가 포함된 이 구조체의 멤버를 나타냅니다.

이 구조체의 dwOSVersionInfoSize 멤버를 로 sizeof(OSVERSIONINFOEX)설정해야 합니다. dwTypeMask로 표시된 멤버에 대한 유효한 데이터도 지정해야 합니다. 함수는 해당 dwTypeMask 비트가 설정되지 않은 구조체 멤버를 무시합니다.

[in] dwTypeMask

테스트할 OSVERSIONINFOEX 구조체의 멤버를 나타내는 마스크입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
VER_BUILDNUMBER
0x0000004
dwBuildNumber
VER_MAJORVERSION
0x0000002
dwMajorVersion

주 버전을 테스트하는 경우 부 버전과 서비스 팩 주 버전 및 부 버전도 테스트해야 합니다.

VER_MINORVERSION
0x0000001
dwMinorVersion
VER_PLATFORMID
0x0000008
dwPlatformId
VER_SERVICEPACKMAJOR
0x0000020
wServicePackMajor
VER_SERVICEPACKMINOR
0x0000010
wServicePackMinor
VER_SUITENAME
0x0000040
wSuiteMask
VER_PRODUCT_TYPE
0x0000080
wProductType

[in] dwlConditionMask

비교할 각 lpVersionInfo 멤버에 사용할 비교 유형입니다. 이 값을 빌드하려면 비교되는 각 OSVERSIONINFOEX 멤버에 대해 VerSetConditionMask 함수 또는 VER_SET_CONDITION 매크로를 한 번 호출합니다.

반환 값

현재 실행 중인 운영 체제가 지정된 요구 사항을 충족하는 경우 반환 값은 0이 아닌 값입니다.

현재 시스템이 요구 사항을 충족하지 않으면 반환 값은 0이고 GetLastError 는 ERROR_OLD_WIN_VERSION 반환합니다.

함수가 실패하면 반환 값은 0이고 GetLastError 는 ERROR_OLD_WIN_VERSION 이외의 오류 코드를 반환합니다.

설명

VerifyVersionInfo 함수는 현재 실행 중인 운영 체제에 대한 버전 정보를 검색하여 lpVersionInfo 구조의 유효한 멤버와 비교합니다. 이렇게 하면 필요한 운영 체제 버전 조건 집합이 있는지 쉽게 확인할 수 있습니다. GetVersionEx 함수를 호출하여 고유한 비교를 수행하는 대신 VerifyVersionInfo를 사용하는 것이 좋습니다.

일반적으로 VerifyVersionInfo 는 지정된 모든 테스트가 성공한 경우에만 0이 아닌 값을 반환합니다. 그러나 운영 체제 버전은 이러한 값의 조합이므로 주, 부 버전 및 서비스 팩 버전은 계층적 방식으로 테스트됩니다. 주 버전에 대한 조건이 있는 경우 부 버전 및 서비스 팩 버전에 지정된 조건을 대체합니다. (주 버전이 5보다 크고 부 버전이 1보다 작거나 같은지 테스트할 수 없습니다. 이러한 테스트를 지정하는 경우 함수는 주 버전에서 보다 큰 작업을 수행하기 때문에 부 버전에 대한 테스트 요청을 1보다 크게 변경합니다.)

함수는 주 버전, 부 버전 및 서비스 팩 버전 순서로 이러한 값을 테스트합니다. 함수는 동일한 동안 값을 계속 테스트하고 값 중 하나가 지정된 조건을 충족하지 않으면 중지됩니다. 예를 들어 버전 5.1 서비스 팩 1보다 크거나 같은 시스템을 테스트하는 경우 현재 버전이 6.0인 경우 테스트가 성공합니다. 주 버전이 지정된 버전보다 크므로 테스트가 중지됩니다. 마찬가지로 버전 5.1 서비스 팩 1보다 크거나 같은 시스템을 테스트하는 경우 현재 버전이 5.2이면 테스트가 성공합니다. (부 버전은 지정된 버전보다 크므로 테스트가 중지됩니다.) 그러나 버전 5.1 서비스 팩 1보다 크거나 같은 시스템을 테스트하는 경우 현재 버전이 5.0 서비스 팩 2인 경우 테스트가 실패합니다. 부 버전은 지정된 버전보다 크지 않으므로 테스트가 중지됩니다.

시스템 버전의 범위를 확인하려면 VerifyVersionInfo를 두 번 호출해야 합니다. 예를 들어 시스템 버전이 5.0보다 크지만 5.1보다 작거나 같은지 확인하려면 먼저 VerifyVersionInfo 를 호출하여 주 버전이 5이고 부 버전이 0보다 큰지 테스트한 다음 VerifyVersionInfo 를 다시 호출하여 주 버전이 5이고 부 버전이 1보다 작거나 같은지 테스트합니다.

현재 운영 체제를 식별하는 것은 일반적으로 특정 운영 체제 기능이 있는지 여부를 확인하는 가장 좋은 방법은 아닙니다. 이는 운영 체제에 재배포 가능 DLL에 새로운 기능이 추가되었을 수 있기 때문입니다. GetVersionEx를 사용하여 운영 체제 플랫폼 또는 버전 번호를 확인하는 대신 기능 자체의 존재를 테스트합니다. 자세한 내용은 운영 체제 버전을 참조하세요.

현재 운영 체제가 Media Center 또는 태블릿 PC 버전의 Windows인지 확인하려면 GetSystemMetrics를 호출합니다.

Windows 10: VerifyVersionInfolpVersionInfo 매개 변수가 Windows 8.1 또는 Windows 10 지정하도록 설정된 경우 Windows 8.1 대한 호환성 매니페스트가 없는 애플리케이션에서 호출되거나 Windows 10 경우 false를 반환합니다. 버전이 Windows 8.1 또는 Windows 10. 특히 VerifyVersionInfo 에는 다음과 같은 동작이 있습니다.

  • 애플리케이션에 매니페스트가 없는 경우 VerifyVersionInfo는 작업 시스템 버전이 Windows 8(6.2)인 것처럼 동작합니다.
  • 애플리케이션에 Windows 8.1 해당하는 GUID가 포함된 매니페스트가 있는 경우 VerifyVersionInfo는 작업 시스템 버전이 Windows 8.1(6.3)인 것처럼 동작합니다.
  • 애플리케이션에 Windows 10 해당하는 GUID가 포함된 매니페스트가 있는 경우 VerifyVersionInfo는 작업 시스템 버전이 Windows 10(10.0)인 것처럼 동작합니다.
버전 도우미 함수VerifyVersionInfo 함수를 사용하므로 IsWindows8Point1OrGreaterIsWindows10OrGreater 동작도 매니페스트의 존재 및 콘텐츠에 따라 유사하게 영향을 받습니다.

Windows 8.1 또는 Windows 10 애플리케이션을 매니페스트하려면 Windows용 애플리케이션 대상 지정을 참조하세요.

예제

예제는 시스템 버전 확인을 참조하세요.

참고

winbase.h 헤더는 VERIFYVersionInfo를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

GetVersionEx

OSVERSIONINFOEX

운영 체제 버전

시스템 정보 함수

VER_SET_CONDITION

VerSetConditionMask