OSVERSIONINFOEXW 구조체(winnt.h)
운영 체제 버전 정보를 포함합니다. 이 정보에는 주 버전 및 부 버전 번호, 빌드 번호, 플랫폼 식별자, 제품 제품군 및 시스템에 설치된 최신 서비스 팩에 대한 정보가 포함됩니다. 이 구조는 GetVersionEx
통사론
typedef struct _OSVERSIONINFOEXW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[128];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
회원
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 헤더는 OSVERSIONINFOEX를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
헤더 | winnt.h(Windows.h 포함) |
참고 항목
IsWow64Process
OSVERSIONINFO