OSVERSIONINFOA 구조체(winnt.h)
운영 체제 버전 정보를 포함합니다. 이 정보에는 주 버전 및 부 버전 번호, 빌드 번호, 플랫폼 식별자 및 운영 체제에 대한 설명 텍스트가 포함됩니다. 이 구조체는 GetVersionEx 함수와 함께 사용됩니다.
추가 버전 정보를 얻으려면 GetVersionExOSVERSIONINFOEX 구조를 대신 사용합니다.
통사론
typedef struct _OSVERSIONINFOA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
회원
dwOSVersionInfoSize
이 데이터 구조의 크기(바이트)입니다. 이 멤버를 sizeof(OSVERSIONINFO)
설정합니다.
dwMajorVersion
운영 체제의 주 버전 번호입니다. 자세한 내용은 비고를 참조하세요.
dwMinorVersion
운영 체제의 부 버전 번호입니다. 자세한 내용은 비고를 참조하세요.
dwBuildNumber
운영 체제의 빌드 번호입니다.
dwPlatformId
운영 체제 플랫폼입니다. 이 멤버는 다음 값일 수 있습니다.
값 | 의미 |
---|---|
|
운영 체제는 Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP 또는 Windows 2000입니다. |
szCSDVersion[128]
시스템에 설치된 최신 서비스 팩을 나타내는 null로 끝나는 문자열(예: "서비스 팩 3")입니다. 서비스 팩이 설치되지 않은 경우 문자열은 비어 있습니다.
발언
버전 정보를 사용하는 것이 기능을 테스트하는 가장 좋은 방법은 아닙니다. 대신 관심 있는 기능에 대한 설명서를 참조하세요. 기능 검색을 위한 일반적인 기술에 대한 자세한 내용은 운영 체제 버전참조하세요.
특정 운영 체제가 필요한 경우 하나의 운영 체제에 대한 테스트를 디자인하는 대신 지원되는 최소 버전으로 사용해야 합니다. 이러한 방식으로 검색 코드는 이후 버전의 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 Server 2003 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) == 0 |
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애플리케이션을 대상으로 지정하는 |
예제
예를 들어 시스템 버전가져오기
메모
winnt.h 헤더는 OSVERSIONINFO를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
헤더 | winnt.h(Windows.h 포함) |
참고 항목
OSVERSIONINFOEX