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


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

Платформа операционной системы. Этот элемент может быть следующим значением.

Ценность Значение
VER_PLATFORM_WIN32_NT
2
Операционная система — 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)

См. также

OSVERSIONINFOEX

вспомогательные API версии