OSVERSIONINFOEXW-Struktur (winnt.h)
Enthält Informationen zur Betriebssystemversion. Die Informationen umfassen Haupt- und Nebenversionsnummern, eine Buildnummer, einen Plattformbezeichner sowie Informationen zu Produktsammlungen und dem neuesten Service Pack, das auf dem System installiert ist. Diese Struktur wird mit den Funktionen GetVersionEx und VerifyVersionInfo verwendet.
Syntax
typedef struct _OSVERSIONINFOEXW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[128];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
Member
dwOSVersionInfoSize
Die Größe dieser Datenstruktur in Bytes. Legen Sie dieses Element auf fest sizeof(OSVERSIONINFOEX)
.
dwMajorVersion
Die Hauptversionsnummer des Betriebssystems. Weitere Informationen finden Sie in den Hinweisen.
dwMinorVersion
Die Nebenversionsnummer des Betriebssystems. Weitere Informationen finden Sie in den Hinweisen.
dwBuildNumber
Die Buildnummer des Betriebssystems.
dwPlatformId
Die Betriebssystemplattform. Dieses Element kann VER_PLATFORM_WIN32_NT (2) sein.
szCSDVersion[128]
Eine null-beendete Zeichenfolge, z. B. "Service Pack 3", die angibt, dass das neueste Service Pack auf dem System installiert ist. Wenn kein Service Pack installiert wurde, ist die Zeichenfolge leer.
wServicePackMajor
Die Hauptversionsnummer des neuesten Service Packs, das auf dem System installiert ist. Beispielsweise ist für Service Pack 3 die Hauptversionsnummer 3. Wenn kein Service Pack installiert wurde, ist der Wert 0.
wServicePackMinor
Die Nebenversionsnummer des neuesten Service Packs, das auf dem System installiert ist. Für Service Pack 3 ist beispielsweise die Nebenversionsnummer 0.
wSuiteMask
Eine Bitmaske, die die auf dem System verfügbaren Produktsammlungen identifiziert. Dieser Member kann eine Kombination der folgenden Werte sein.
wProductType
Alle zusätzlichen Informationen zum System. Dieser Member kann einer der folgenden Werte sein.
wReserved
Für die zukünftige Verwendung reserviert.
Bemerkungen
Die Verwendung von Versionsinformationen ist nicht die beste Methode, um ein Feature zu testen. Die interessante Funktion finden Sie stattdessen in der Dokumentation. Weitere Informationen zu gängigen Techniken für die Featureerkennung finden Sie unter Betriebssystemversion.
Wenn Sie ein bestimmtes Betriebssystem benötigen, stellen Sie sicher, dass Sie es als unterstützte Mindestversion verwenden, anstatt den Test für das eine Betriebssystem zu entwerfen. Auf diese Weise funktioniert Ihr Erkennungscode weiterhin in zukünftigen Versionen von Windows.
In der folgenden Tabelle sind die Werte zusammengefasst, die von unterstützten Versionen von Windows zurückgegeben werden. Verwenden Sie die Informationen in der Spalte mit der Bezeichnung "Sonstige", um zwischen Betriebssystemen mit identischen Versionsnummern zu unterscheiden.
Betriebssystem | Versionsnummer | dwMajorVersion | dwMinorVersion | Sonstiges |
---|---|---|---|---|
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 Home Server | 5,2 | 5 | 2 | OSVERSIONINFOEX.wSuiteMask & VER_SUITE_WH_SERVER |
Windows Server 2003 | 5,2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) == 0 |
Windows XP Professional x64 Edition | 5,2 | 5 | 2 | (OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION) && (SYSTEM_INFO.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) |
Windows XP | 5,1 | 5 | 1 | Nicht zutreffend |
Windows 2000 | 5.0 | 5 | 0 | Nicht zutreffend |
*Für Anwendungen, die für Windows 8.1 oder Windows 10 manifestiert wurden. Anwendungen, die nicht für Windows 8.1 oder Windows 10 manifestiert werden, geben den Wert der Windows 8 Betriebssystemversion (6.2) zurück. Informationen zum Manifestieren Ihrer Anwendungen für Windows 8.1 oder Windows 10 finden Sie unter Targeting ihrer Anwendung für Windows. |
Sie sollten sich nicht nur auf das flag VER_SUITE_SMALLBUSINESS verlassen, um zu bestimmen, ob Small Business Server auf dem System installiert wurde, da sowohl dieses Flag als auch das VER_SUITE_SMALLBUSINESS_RESTRICTED-Flag festgelegt sind, wenn diese Produktsammlung installiert wird. Wenn Sie diese Installation auf Windows Server Standard Edition aktualisieren, wird das flag VER_SUITE_SMALLBUSINESS_RESTRICTED deaktiviert. Das flag VER_SUITE_SMALLBUSINESS bleibt jedoch festgelegt. In diesem Fall gibt dies an, dass Small Business Server einmal auf diesem System installiert wurde. Wenn diese Installation auf Windows Server Enterprise Edition aktualisiert wird, bleibt das flag VER_SUITE_SMALLBUSINESS festgelegt.
Wenn der Kompatibilitätsmodus aktiviert ist, enthält die OSVERSIONINFOEX-Struktur Informationen über das Betriebssystem, das für die Anwendungskompatibilität ausgewählt ist.
Um zu bestimmen, ob eine Win32-basierte Anwendung auf WOW64 ausgeführt wird, rufen Sie die IsWow64Process-Funktion auf. Rufen Sie die GetNativeSystemInfo-Funktion auf, um zu bestimmen, ob auf dem System eine 64-Bit-Version von Windows ausgeführt wird.
Die GetSystemMetrics-Funktion stellt die folgenden zusätzlichen Informationen zum aktuellen Betriebssystem bereit.
Produkt | Einstellung |
---|---|
Windows Server 2003 R2 | SM_SERVERR2 |
Windows XP Media Center Edition | SM_MEDIACENTER |
Windows XP Starter Edition | SM_STARTER |
Windows XP Tablet PC Edition | SM_TABLETPC |
Beispiele
Ein Beispiel finden Sie unter Abrufen der Systemversion.
Hinweis
Der winnt.h-Header definiert OSVERSIONINFOEX als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | winnt.h (Einschließen von Windows.h) |