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


Структура 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]

Строка версии пакета обновления. Этот элемент содержит строку, завершающуюся значением 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)

См. также

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo