OSVERSIONINFOEXW 구조체(wdm.h)
RTL_OSVERSIONINFOEXW 구조에는 운영 체제 버전 정보가 포함됩니다.
구문
typedef struct _OSVERSIONINFOEXW {
ULONG dwOSVersionInfoSize;
ULONG dwMajorVersion;
ULONG dwMinorVersion;
ULONG dwBuildNumber;
ULONG dwPlatformId;
WCHAR szCSDVersion[128];
USHORT wServicePackMajor;
USHORT wServicePackMinor;
USHORT wSuiteMask;
UCHAR wProductType;
UCHAR wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
멤버
dwOSVersionInfoSize
RTL_OSVERSIONINFOEXW 구조체의 크기(바이트)입니다. 구조체가 RtlGetVersion과 함께 사용되기 전에 이 멤버를 설정해야 합니다.
dwMajorVersion
운영 체제의 주 버전 번호입니다. 예를 들어 Windows 2000의 경우 주 버전 번호는 5개입니다. 자세한 내용은 주의 표를 참조하세요.
dwMinorVersion
운영 체제의 부 버전 번호입니다. 예를 들어 Windows 2000의 경우 부 버전 번호는 0입니다. 자세한 내용은 주의 표를 참조하세요.
dwBuildNumber
운영 체제의 빌드 번호입니다.
dwPlatformId
운영 체제 플랫폼입니다. NT 기반 운영 체제에서 Win32의 경우 RtlGetVersion 은 VER_PLATFORM_WIN32_NT 값을 반환합니다.
szCSDVersion[128]
서비스 팩 버전 문자열입니다. 이 멤버에는 시스템에 설치된 최신 서비스 팩을 나타내는 "서비스 팩 3"과 같은 null로 종료된 문자열이 포함되어 있습니다. 서비스 팩이 설치되어 있지 않으면 RtlGetVersion 에서 이 문자열을 초기화하지 않을 수 있습니다. RtlGetVersion을 호출하기 전에 szCSDVersion을 0(빈 문자열)으로 초기화합니다.
wServicePackMajor
시스템에 설치된 최신 서비스 팩의 주 버전 번호입니다. 예를 들어 서비스 팩 3의 경우 주 버전 번호는 3입니다. 서비스 팩이 설치되지 않은 경우 값은 0입니다.
wServicePackMinor
시스템에 설치된 최신 서비스 팩의 부 버전 번호입니다. 예를 들어 서비스 팩 3의 경우 부 버전 번호는 0입니다.
wSuiteMask
시스템에서 사용할 수 있는 제품 제품군입니다. 이 멤버는 다음 값 중 하나 이상의 비트 OR 또는 0으로 설정됩니다.
값 | 의미 |
---|---|
VER_SUITE_BACKOFFICE | Microsoft BackOffice 구성 요소가 설치됩니다. |
VER_SUITE_BLADE | Windows Server 2003, Web Edition이 설치되어 있습니다. |
VER_SUITE_COMPUTE_SERVER | Windows Server 2003, Compute Cluster Edition이 설치되어 있습니다. |
VER_SUITE_DATACENTER | Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition 또는 Windows 2000 Datacenter Server가 설치됩니다. |
VER_SUITE_ENTERPRISE | Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition 또는 Windows 2000 고급 서버가 설치되어 있습니다. |
VER_SUITE_EMBEDDEDNT | Windows XP Embedded가 설치되어 있습니다. |
VER_SUITE_PERSONAL | Windows Vista Home Premium, Windows Vista Home Basic 또는 Windows XP Home Edition이 설치되어 있습니다. |
VER_SUITE_SINGLEUSERTS | 원격 데스크톱이 지원되지만 하나의 대화형 세션만 지원됩니다. 이 값은 시스템이 애플리케이션 서버 모드에서 실행되고 있지 않으면 설정됩니다. |
VER_SUITE_SMALLBUSINESS(참고 참조) | Microsoft Small Business Server는 한때 시스템에 설치되었지만 다른 버전의 Windows로 업그레이드되었을 수 있습니다. 이 플래그 비트에 대한 자세한 내용은 다음 설명 섹션을 참조하세요. |
VER_SUITE_SMALLBUSINESS_RESTRICTED | Microsoft Small Business Server는 제한적인 클라이언트 라이선스가 적용된 상태로 설치됩니다. 이 플래그 비트에 대한 자세한 내용은 다음 설명 섹션을 참조하세요. |
VER_SUITE_STORAGE_SERVER | Windows Storage Server 2003 R2 또는 Windows Storage Server 2003이 설치되어 있습니다. |
VER_SUITE_TERMINAL | 터미널 서비스가 설치됩니다. 이 값은 항상 설정됩니다. VER_SUITE_TERMINAL 설정되었지만 VER_SUITE_SINGLEUSERTS 설정되지 않은 경우 운영 체제가 애플리케이션 서버 모드에서 실행됩니다. |
VER_SUITE_WH_SERVER | Windows 홈 서버가 설치되어 있습니다. |
small Business Server가 현재 설치되어 있는지 여부를 확인하기 위해 VER_SUITE_SMALLBUSINESS 플래그에만 의존해서는 안 됩니다. 이 제품 제품군이 설치되면 이 플래그와 VER_SUITE_SMALLBUSINESS_RESTRICTED 플래그가 모두 설정됩니다. 이 설치를 Windows Server Standard Edition으로 업그레이드하면 VER_SUITE_SMALLBUSINESS_RESTRICTED 플래그가 지워지지만 VER_SUITE_SMALLBUSINESS 플래그가 설정된 상태로 유지됩니다. 이 경우 Small Business Server가 이전에 이 시스템에 설치되었음을 나타냅니다. 이 설치가 Windows Server로 추가로 업그레이드되면 Enterprise Edition VER_SUITE_SMALLBUSINESS 플래그가 설정된 상태로 유지됩니다.
wProductType
제품 유형입니다. 이 멤버에는 시스템에 대한 추가 정보가 포함되어 있습니다. 이 멤버는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
VER_NT_WORKSTATION | Windows 2000 이상 전문 버전 |
VER_NT_DOMAIN_CONTROLLER | Windows 2000 이상 도메인 컨트롤러 |
VER_NT_SERVER | Windows 2000 이상 서버 |
wReserved
다음에 사용하도록 예약됩니다.
설명
이 구조의 정보에는 주 버전 및 부 버전 번호, 빌드 번호, 플랫폼 식별자, 설치된 제품 제품군 및 시스템에 설치된 최신 서비스 팩이 포함됩니다. 이 구조체는 RtlGetVersion 및 RtlVerifyVersionInfo 루틴과 함께 사용됩니다.
버전 정보를 사용하는 것이 항상 기능을 사용할 수 있는지 여부를 테스트하는 가장 좋은 방법은 아닙니다. 지침은 관심 있는 기능에 대한 설명서를 참조하세요.
가능하면 드라이버에서 버전 검색 코드를 디자인하여 드라이버가 이후 버전의 Windows에서 실행되도록 합니다. 드라이버에 특정 운영 체제 버전이 필요한 경우 이 버전을 드라이버가 실행할 수 있는 유일한 버전이 아니라 지원되는 최소 버전으로 처리해야 합니다.
다음 표에는 지원되는 Windows 버전에서 반환되는 버전 정보가 요약되어 있습니다. "기타" 열 또는 빌드 번호의 정보를 사용하여 버전 번호가 동일한 운영 체제를 구분합니다.
운영 체제 | 버전 번호 | dwMajorVersion | dwMinorVersion | 기타 |
---|---|---|---|---|
Windows 11 | 10.0 | 10 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Server 2022 | 10.0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Server 2019 | 10.0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows 10(모든 릴리스) | 10.0 | 10 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Server 2016 | 10.0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Server 2012 R2 | 6.3 | 6 | 3 | wProductType != VER_NT_WORKSTATION |
Windows 8.1 | 6.3 | 6 | 3 | wProductType == VER_NT_WORKSTATION |
Windows 8 | 6.2 | 6 | 2 | wProductType == VER_NT_WORKSTATION |
Windows Server 2012 | 6.2 | 6 | 2 | wProductType != VER_NT_WORKSTATION |
Windows 7 | 6.1 | 6 | 1 | wProductType == VER_NT_WORKSTATION |
Windows Server 2008 R2 | 6.1 | 6 | 1 | wProductType != VER_NT_WORKSTATION |
Windows Server 2008 | 6.0 | 6 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Vista | 6.0 | 6 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Home Server | 5.2 | 5 | 2 | wSuiteMask == VER_SUITE_WH_SERVER |
Windows Server 2003 | 5.2 | 5 | 2 | 해당 없음 |
Windows XP Professional x64 Edition(참고 참조) | 5.2 | 5 | 2 | wProductType == VER_NT_WORKSTATION |
Windows XP | 5.1 | 5 | 1 | 해당 없음 |
Windows 2000 | 5.0 | 5 | 0 | 해당 없음 |
Windows XP Professional x64 Edition에서는 64비트 커널 모드 드라이버만 실행할 수 있습니다. 따라서 32비트 커널 모드 드라이버는 이 버전의 Windows에 대한 검사를 안전하게 생략할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | wdm.h(Ntddk.h 포함) |