다음을 통해 공유


OSVERSIONINFOEXW 구조체(winnt.h)

운영 체제 버전 정보를 포함합니다. 이 정보에는 주 버전 및 부 버전 번호, 빌드 번호, 플랫폼 식별자, 제품 제품군 및 시스템에 설치된 최신 서비스 팩에 대한 정보가 포함됩니다. 이 구조는 GetVersionEx VerifyVersionInfo 함수를 함께 사용됩니다.

통사론

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

시스템에서 사용할 수 있는 제품 제품군을 식별하는 비트 마스크입니다. 이 멤버는 다음 값의 조합일 수 있습니다.

의미
VER_SUITE_BACKOFFICE
0x00000004
Microsoft BackOffice 구성 요소가 설치됩니다.
VER_SUITE_BLADE
0x00000400
Windows Server 2003, Web Edition이 설치됩니다.
VER_SUITE_COMPUTE_SERVER
0x00004000
Windows Server 2003, Compute Cluster Edition이 설치됩니다.
VER_SUITE_DATACENTER
0x00000080
Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition 또는 Windows 2000 Datacenter Server가 설치됩니다.
VER_SUITE_ENTERPRISE
0x00000002
Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition 또는 Windows 2000 Advanced Server가 설치됩니다. 이 비트 플래그에 대한 자세한 내용은 설명 섹션을 참조하세요.
VER_SUITE_EMBEDDEDNT
0x00000040
Windows XP Embedded가 설치됩니다.
VER_SUITE_PERSONAL
0x00000200
Windows Vista Home Premium, Windows Vista Home Basic 또는 Windows XP Home Edition이 설치되어 있습니다.
VER_SUITE_SINGLEUSERTS
0x00000100
원격 데스크톱이 지원되지만 하나의 대화형 세션만 지원됩니다. 이 값은 시스템이 애플리케이션 서버 모드에서 실행되지 않는 한 설정됩니다.
VER_SUITE_SMALLBUSINESS
0x00000001
Microsoft Small Business Server가 시스템에 설치되었지만 다른 버전의 Windows로 업그레이드되었을 수 있습니다. 이 비트 플래그에 대한 자세한 내용은 설명 섹션을 참조하세요.
VER_SUITE_SMALLBUSINESS_RESTRICTED
0x00000020
Microsoft Small Business Server는 제한적인 클라이언트 라이선스가 적용된 상태로 설치됩니다. 이 비트 플래그에 대한 자세한 내용은 설명 섹션을 참조하세요.
VER_SUITE_STORAGE_SERVER
0x00002000
Windows Storage Server 2003 R2 또는 Windows Storage Server 2003is가 설치되었습니다.
VER_SUITE_TERMINAL
0x00000010
터미널 서비스가 설치됩니다. 이 값은 항상 설정됩니다.

VER_SUITE_TERMINAL 설정되었지만 VER_SUITE_SINGLEUSERTS 설정되지 않은 경우 시스템은 애플리케이션 서버 모드에서 실행됩니다.

VER_SUITE_WH_SERVER
0x00008000
Windows Home Server가 설치되어 있습니다.
VER_SUITE_MULTIUSERTS
0x00020000
AppServer 모드를 사용할 수 있습니다.

wProductType

시스템에 대한 추가 정보입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
VER_NT_DOMAIN_CONTROLLER
0x0000002
시스템은 도메인 컨트롤러이며 운영 체제는 Windows Server 2012, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server입니다.
VER_NT_SERVER
0x0000003
운영 체제는 Windows Server 2012, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server입니다.

도메인 컨트롤러이기도 한 서버는 VER_NT_SERVER아니라 VER_NT_DOMAIN_CONTROLLER보고됩니다.

VER_NT_WORKSTATION
0x0000001
운영 체제는 Windows 8, Windows 7, Windows Vista, Windows XP Professional, Windows XP Home Edition 또는 Windows 2000 Professional입니다.

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

버전 도우미 API