Поделиться через


Структура 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 основной номер версии — пять. Дополнительные сведения см. в таблице в разделе Примечания.

dwMinorVersion

Дополнительный номер версии операционной системы. Например, для Windows 2000 дополнительный номер версии равен нулю. Дополнительные сведения см. в таблице в разделе Примечания.

dwBuildNumber

Номер сборки операционной системы.

dwPlatformId

Платформа операционной системы. Для Win32 в операционных системах на основе NT функция RtlGetVersion возвращает значение VER_PLATFORM_WIN32_NT.

szCSDVersion[128]

Строка версии пакета обновления. Этот элемент содержит строку, завершающуюся нулевым значением, например "Пакет обновления 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 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 Корпоративная, Windows Server 2003, выпуск Enterprise или Windows 2000 Advanced Server.
VER_SUITE_EMBEDDEDNT Установлена Windows XP Embedded.
VER_SUITE_PERSONAL Устанавливается Windows Vista Home Premium, Windows Vista Домашняя базовая или 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, чтобы определить, установлен ли в настоящее время Small Business Server. Этот и VER_SUITE_SMALLBUSINESS_RESTRICTED флаг устанавливаются при установке этого набора продуктов. Если вы обновите эту установку до Windows Server Standard Edition, флаг VER_SUITE_SMALLBUSINESS_RESTRICTED будет снят, но флаг VER_SUITE_SMALLBUSINESS остается установленным, что в данном случае означает, что в этой системе ранее был установлен Сервер Small Business Server. Если эта установка будет обновлена до Windows Server, выпуск Enterprise, флаг 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 Неприменимо

Только 64-разрядный драйвер в режиме ядра может работать в Windows XP Professional x64 Edition. Таким образом, 32-разрядный драйвер в режиме ядра может безопасно опустить проверку для этой версии Windows.

Требования

Требование Значение
Заголовок wdm.h (включая Ntddk.h)

См. также раздел

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo