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

다음에 사용하도록 예약됩니다.

설명

이 구조의 정보에는 주 버전 및 부 버전 번호, 빌드 번호, 플랫폼 식별자, 설치된 제품 제품군 및 시스템에 설치된 최신 서비스 팩이 포함됩니다. 이 구조체는 RtlGetVersionRtlVerifyVersionInfo 루틴과 함께 사용됩니다.

버전 정보를 사용하는 것이 항상 기능을 사용할 수 있는지 여부를 테스트하는 가장 좋은 방법은 아닙니다. 지침은 관심 있는 기능에 대한 설명서를 참조하세요.

가능하면 드라이버에서 버전 검색 코드를 디자인하여 드라이버가 이후 버전의 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 포함)

추가 정보

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo