Структура OSVERSIONINFOA (winnt.h)
Содержит сведения о версии операционной системы. Сведения включают номера основной и дополнительной версий, номер сборки, идентификатор платформы и описательный текст об операционной системе. Эта структура используется с функцией GetVersionEx .
Чтобы получить дополнительные сведения о версии, используйте структуру OSVERSIONINFOEX с GetVersionEx .
Синтаксис
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 или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | winnt.h (включая Windows.h) |