Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура 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 основной номер версии составляет пять. Дополнительные сведения см. в таблице в примечаниях.
dwMinorVersion
Дополнительный номер версии операционной системы. Например, для Windows 2000 дополнительный номер версии равен нулю. Дополнительные сведения см. в таблице в примечаниях.
dwBuildNumber
Номер сборки операционной системы.
dwPlatformId
Платформа операционной системы. Для Win32 в операционных системах на основе NT RtlGetVersion возвращает значение VER_PLATFORM_WIN32_NT.
szCSDVersion[128]
Строка версии пакета обновления. Этот элемент содержит строку, завершающуюся значением NULL, например "Пакет обновления 3", который указывает последний пакет обновления, установленный в системе. Если пакет обновления не установлен, RtlGetVersion может не инициализировать эту строку. Инициализировать szCSDVersion до нуля (пустая строка) перед вызовом RtlGetVersion.
wServicePackMajor
Основной номер версии последнего пакета обновления, установленного в системе. Например, для пакета обновления 3 основной номер версии — три. Если пакет обновления не установлен, значение равно нулю.
wServicePackMinor
Дополнительный номер версии последнего пакета обновления, установленного в системе. Например, для пакета обновления 3 дополнительный номер версии равен нулю.
wSuiteMask
Наборы продуктов, доступные в системе. Этот элемент имеет значение нуля или побитового ИЛИ одного или нескольких из следующих значений.
| Ценность | Значение | 
|---|---|
| VER_SUITE_BACKOFFICE | Компоненты Microsoft BackOffice устанавливаются. | 
| VER_SUITE_BLADE | Windows Server 2003 устанавливается web Edition. | 
| VER_SUITE_COMPUTE_SERVER | Windows Server 2003 устанавливается выпуск вычислительного кластера. | 
| 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 Advanced Server. | 
| 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 Home Server установлен. | 
Вы не должны полагаться исключительно на флаг VER_SUITE_SMALLBUSINESS, чтобы определить, установлен ли в настоящее время малый бизнес-сервер. Этот флаг и флаг VER_SUITE_SMALLBUSINESS_RESTRICTED задаются при установке этого набора продуктов. При обновлении этой установки до Windows Server, Standard Edition флаг VER_SUITE_SMALLBUSINESS_RESTRICTED очищается, но флаг VER_SUITE_SMALLBUSINESS остается установленным, который, в данном случае, указывает на то, что в этой системе был установлен ранее небольшой бизнес-сервер. Если эта установка будет обновлена до 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 (include Ntddk.h) |