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