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