OSVERSIONINFOEXA 구조체(winnt.h)
운영 체제 버전 정보를 포함합니다. 이 정보에는 주 버전 및 부 버전 번호, 빌드 번호, 플랫폼 식별자, 제품 제품군 및 시스템에 설치된 최신 서비스 팩에 대한 정보가 포함됩니다. 이 구조체는 GetVersionEx 및 VerifyVersionInfo 함수와 함께 사용됩니다.
구문
typedef struct _OSVERSIONINFOEXA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
멤버
dwOSVersionInfoSize
이 데이터 구조의 크기(바이트)입니다. 이 멤버를 로 sizeof(OSVERSIONINFOEX)
설정합니다.
dwMajorVersion
운영 체제의 주 버전 번호입니다. 자세한 내용은 설명 부분을 참조하세요.
dwMinorVersion
운영 체제의 부 버전 번호입니다. 자세한 내용은 설명 부분을 참조하세요.
dwBuildNumber
운영 체제의 빌드 번호입니다.
dwPlatformId
운영 체제 플랫폼입니다. 이 멤버는 VER_PLATFORM_WIN32_NT 수 있습니다(2).
szCSDVersion[128]
시스템에 설치된 최신 서비스 팩을 나타내는 null로 끝나는 문자열(예: "서비스 팩 3")입니다. 서비스 팩이 설치되지 않은 경우 문자열이 비어 있습니다.
wServicePackMajor
시스템에 설치된 최신 서비스 팩의 주 버전 번호입니다. 예를 들어 서비스 팩 3의 경우 주 버전 번호는 3입니다. 서비스 팩이 설치되지 않은 경우 값은 0입니다.
wServicePackMinor
시스템에 설치된 최신 서비스 팩의 부 버전 번호입니다. 예를 들어 서비스 팩 3의 경우 부 버전 번호는 0입니다.
wSuiteMask
시스템에서 사용할 수 있는 제품 제품군을 식별하는 비트 마스크입니다. 이 멤버는 다음 값의 조합일 수 있습니다.
wProductType
시스템에 대한 추가 정보입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.
wReserved
다음에 사용하도록 예약됩니다.
설명
버전 정보를 사용하는 것이 기능을 테스트하는 가장 좋은 방법은 아닙니다. 대신 관심 있는 기능에 대한 설명서를 참조하세요. 기능 검색을 위한 일반적인 기술에 대한 자세한 내용은 운영 체제 버전을 참조하세요.
특정 운영 체제가 필요한 경우 하나의 운영 체제에 대한 테스트를 설계하는 대신 지원되는 최소 버전으로 사용해야 합니다. 이렇게 하면 검색 코드가 이후 버전의 Windows에서 계속 작동합니다.
다음 표에는 지원되는 Windows 버전에서 반환되는 값이 요약되어 있습니다. "기타"라는 레이블이 지정된 열의 정보를 사용하여 버전 번호가 동일한 운영 체제를 구분합니다.
운영 체제 | 버전 번호 | dwMajorVersion | dwMinorVersion | 기타 |
---|---|---|---|---|
Windows 10 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2016 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8.1 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 R2 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 7 | 6.1 | 6 | 1 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2008 R2 | 6.1 | 6 | 1 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows Server 2008 | 6.0 | 6 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows Vista | 6.0 | 6 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2003 R2 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) != 0 |
Windows Home Server | 5.2 | 5 | 2 | OSVERSIONINFOEX.wSuiteMask & VER_SUITE_WH_SERVER |
Windows Server 2003 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) == 0 |
Windows XP Professional x64 Edition | 5.2 | 5 | 2 | (OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION) && (SYSTEM_INFO.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) |
Windows XP | 5.1 | 5 | 1 | 해당 없음 |
Windows 2000 | 5.0 | 5 | 0 | 해당 없음 |
*Windows 8.1 또는 Windows 10 대해 매니페스트된 애플리케이션의 경우 Windows 8.1 또는 Windows 10 대해 매니페스트되지 않은 애플리케이션은 Windows 8 OS 버전 값(6.2)을 반환합니다. Windows 8.1 또는 Windows 10 애플리케이션을 매니페스트하려면 Windows용 애플리케이션 대상 지정을 참조하세요. |
이 제품 제품군이 설치될 때 이 플래그와 VER_SUITE_SMALLBUSINESS_RESTRICTED 플래그가 모두 설정되므로 VER_SUITE_SMALLBUSINESS 플래그만 사용하여 Small Business Server가 시스템에 설치되었는지 여부를 결정하면 안 됩니다. 이 설치를 Windows Server Standard Edition으로 업그레이드하면 VER_SUITE_SMALLBUSINESS_RESTRICTED 플래그가 지워지게 됩니다. 그러나 VER_SUITE_SMALLBUSINESS 플래그 는 설정된 상태로 유지됩니다. 이 경우 Small Business Server가 이 시스템에 한 번 설치되었음을 나타냅니다. 이 설치가 Windows Server로 추가로 업그레이드되면 Enterprise Edition VER_SUITE_SMALLBUSINESS 플래그가 설정된 상태로 유지됩니다.
호환 모드가 적용되는 경우 OSVERSIONINFOEX 구조에는 애플리케이션 호환성을 위해 선택된 운영 체제에 대한 정보가 포함됩니다.
Win32 기반 애플리케이션이 WOW64에서 실행되고 있는지 확인하려면 IsWow64Process 함수를 호출합니다 . 시스템에서 64비트 버전의 Windows를 실행하고 있는지 확인하려면 GetNativeSystemInfo 함수를 호출합니다.
GetSystemMetrics 함수는 현재 운영 체제에 대한 다음과 같은 추가 정보를 제공합니다.
제품 | 설정 |
---|---|
Windows Server 2003 R2 | SM_SERVERR2 |
Windows XP Media Center Edition | SM_MEDIACENTER |
Windows XP Starter Edition | SM_STARTER |
Windows XP Tablet PC Edition | SM_TABLETPC |
예제
예제는 시스템 버전 가져오기를 참조하세요.
참고
winnt.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 OSVERSIONINFOEX를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
머리글 | winnt.h(Windows.h 포함) |