Структура OSVERSIONINFOA (winnt.h)
Содержит сведения о версии операционной системы. Сведения включают основные и незначительные номера версий, номер сборки, идентификатор платформы и описательный текст операционной системы. Эта структура используется с функцией GetVersionEx
Чтобы получить дополнительные сведения о версии, используйте структуру OSVERSIONINFOEX
Синтаксис
typedef struct _OSVERSIONINFOA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
Члены
dwOSVersionInfoSize
Размер этой структуры данных в байтах. Установите для этого элемента значение sizeof(OSVERSIONINFO)
.
dwMajorVersion
Основной номер версии операционной системы. Дополнительные сведения см. в разделе "Примечания".
dwMinorVersion
Дополнительный номер версии операционной системы. Дополнительные сведения см. в разделе "Примечания".
dwBuildNumber
Номер сборки операционной системы.
dwPlatformId
Платформа операционной системы. Этот элемент может быть следующим значением.
Ценность | Значение |
---|---|
|
Операционная система — Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP или Windows 2000. |
szCSDVersion[128]
Строка, завершающаяся значением NULL, например "Пакет обновления 3", которая указывает последний пакет обновления, установленный в системе. Если пакет обновления не установлен, строка пуста.
Замечания
Использование сведений о версии не является лучшим способом тестирования для функции. Вместо этого ознакомьтесь с документацией по интересующей функции. Дополнительные сведения о распространенных методах обнаружения функций см. в версии операционной системы.
Если требуется определенная операционная система, обязательно используйте ее как минимальную поддерживаемую версию, а не проектируйте тест для одной операционной системы. Таким образом, код обнаружения будет продолжать работать в будущих версиях Windows.
В следующей таблице перечислены значения, возвращаемые поддерживаемыми версиями Windows. Используйте сведения в столбце с меткой "Другие", чтобы различать операционные системы с одинаковыми номерами версий.
Операционная система | Номер версии | dwMajorVersion | dwMinorVersion | Другой |
---|---|---|---|---|
Windows 10 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2016 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8.1 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 R2 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 7 | 6.1 | 6 | 1 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2008 R2 | 6.1 | 6 | 1 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows Server 2008 | 6.0 | 6 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows Vista | 6.0 | 6 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2003 R2 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) != 0 |
Windows Server 2003 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) == 0 |
Windows XP | 5.1 | 5 | 1 | Неприменимо |
Windows 2000 | 5.0 | 5 | 0 | Неприменимо |
* Для приложений, которые были манифестированы для Windows 8.1 или Windows 10. Приложения, не манифестированные для Windows 8.1 или Windows 10, возвращают значение версии ОС Windows 8 (6.2). Чтобы манифестировать приложения для Windows 8.1 или Windows 10, см. назначение приложения для Windows. |
Примеры
Пример см. в статье Получениесистемной версии.
Заметка
Заголовок winnt.h определяет OSVERSIONINFO как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
заголовка | winnt.h (включая Windows.h) |