OSVERSIONINFOEXW-Struktur (wdm.h)
Die RTL_OSVERSIONINFOEXW-Struktur enthält Versionsinformationen des Betriebssystems.
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
Die Größe einer RTL_OSVERSIONINFOEXW Struktur in Byte. Dieses Element muss festgelegt werden, bevor die Struktur mit RtlGetVersion-verwendet wird.
dwMajorVersion
Die Hauptversionsnummer des Betriebssystems. Für Windows 2000 ist beispielsweise die Hauptversionsnummer fünf. Weitere Informationen finden Sie in der Tabelle in den Anmerkungen.
dwMinorVersion
Die Nebenversionsnummer des Betriebssystems. Für Windows 2000 ist beispielsweise die Nebenversionsnummer null. Weitere Informationen finden Sie in der Tabelle in den Anmerkungen.
dwBuildNumber
Die Buildnummer des Betriebssystems.
dwPlatformId
Die Betriebssystemplattform. Für Win32 auf NT-basierten Betriebssystemen gibt RtlGetVersion den Wert VER_PLATFORM_WIN32_NT zurück.
szCSDVersion[128]
Die Service Pack-Versionszeichenfolge. Dieses Element enthält eine mit Null beendete Zeichenfolge, z. B. "Service Pack 3", die das neueste Service Pack angibt, das auf dem System installiert ist. Wenn kein Service Pack installiert ist, initialisieren RtlGetVersion- diese Zeichenfolge möglicherweise nicht. Initialisieren Sie szCSDVersion auf Null (leere Zeichenfolge) vor dem Aufruf von RtlGetVersion.
wServicePackMajor
Die Hauptversionsnummer des neuesten Service Packs, das auf dem System installiert ist. For example, for Service Pack 3, the major version number is three. Wenn kein Service Pack installiert wurde, ist der Wert null.
wServicePackMinor
Die Nebenversionsnummer des neuesten Service Packs, das auf dem System installiert ist. For example, for Service Pack 3, the minor version number is zero.
wSuiteMask
Die im System verfügbaren Produktsuiten. Dieses Element wird auf Null oder auf den bitweisen OR eines oder mehrerer der folgenden Werte festgelegt.
Wert | Bedeutung |
---|---|
VER_SUITE_BACKOFFICE | Microsoft BackOffice-Komponenten werden installiert. |
VER_SUITE_BLADE | Windows Server 2003, Web Edition ist installiert. |
VER_SUITE_COMPUTE_SERVER | Windows Server 2003, Compute Cluster Edition ist installiert. |
VER_SUITE_DATACENTER | Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition oder Windows 2000 Datacenter Server ist installiert. |
VER_SUITE_ENTERPRISE | Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition oder Windows 2000 Advanced Server ist installiert. |
VER_SUITE_EMBEDDEDNT | Windows XP Embedded ist installiert. |
VER_SUITE_PERSONAL | Windows Vista Home Premium, Windows Vista Home Basic oder Windows XP Home Edition ist installiert. |
VER_SUITE_SINGLEUSERTS | Remotedesktop wird unterstützt, aber nur eine interaktive Sitzung wird unterstützt. Dieser Wert wird festgelegt, es sei denn, das System wird im Anwendungsservermodus ausgeführt. |
VER_SUITE_SMALLBUSINESS (siehe Hinweis) | Microsoft Small Business Server wurde einmal auf dem System installiert, wurde aber möglicherweise auf eine andere Version von Windows aktualisiert. Weitere Informationen zu diesem Flagbit finden Sie im folgenden Abschnitt "Hinweise". |
VER_SUITE_SMALLBUSINESS_RESTRICTED | Microsoft Small Business Server wird mit der restriktiven Clientlizenz installiert. Weitere Informationen zu diesem Flagbit finden Sie im folgenden Abschnitt "Hinweise". |
VER_SUITE_STORAGE_SERVER | Windows Storage Server 2003 R2 oder Windows Storage Server 2003 ist installiert. |
VER_SUITE_TERMINAL | Terminaldienste werden installiert. Dieser Wert wird immer festgelegt. Wenn VER_SUITE_TERMINAL festgelegt, aber VER_SUITE_SINGLEUSERTS nicht festgelegt ist, wird das Betriebssystem im Anwendungsservermodus ausgeführt. |
VER_SUITE_WH_SERVER | Windows Home Server ist installiert. |
Sie sollten sich nicht ausschließlich auf das VER_SUITE_SMALLBUSINESS-Flag verlassen, um festzustellen, ob Small Business Server derzeit installiert ist. Sowohl dieses Kennzeichen als auch das VER_SUITE_SMALLBUSINESS_RESTRICTED Flag werden festgelegt, wenn diese Produktsuite installiert wird. Wenn Sie diese Installation auf Windows Server, Standard Edition, aktualisieren, wird das VER_SUITE_SMALLBUSINESS_RESTRICTED-Flag gelöscht, aber das VER_SUITE_SMALLBUSINESS Flag bleibt festgelegt, was in diesem Fall angibt, dass Small Business Server zuvor auf diesem System installiert wurde. Wenn diese Installation auf Windows Server, Enterprise Edition, weiter aktualisiert wird, bleibt das VER_SUITE_SMALLBUSINESS Flag festgelegt.
wProductType
Der Produkttyp. Dieses Mitglied enthält zusätzliche Informationen zum System. Dieses Element kann einer der folgenden Werte sein:
Wert | Bedeutung |
---|---|
VER_NT_WORKSTATION | Windows 2000 oder höher professional version |
VER_NT_DOMAIN_CONTROLLER | Windows 2000- oder höher-Domänencontroller |
VER_NT_SERVER | Windows 2000 oder höherer Server |
wReserved
Reserviert für die zukünftige Verwendung.
Die Informationen in dieser Struktur umfassen die Haupt- und Nebenversionsnummern, die Buildnummer, die Plattform-ID, die installierten Produktsammlungen und das neueste Service Pack, das auf dem System installiert ist. Diese Struktur wird mit den RtlGetVersion- und RtlVerifyVersionInfo Routinen verwendet.
Das Vertrauen auf Versionsinformationen ist nicht immer die beste Methode, um zu testen, ob ein Feature verfügbar ist. Eine Anleitung finden Sie in der Dokumentation für das Feature, an dem Sie interessiert sind.
Entwerfen Sie nach Möglichkeit den Versionserkennungscode in Ihrem Treiber, damit der Treiber auf zukünftigen Versionen von Windows ausgeführt werden kann. Wenn Ihr Treiber eine bestimmte Betriebssystemversion erfordert, achten Sie darauf, diese Version als mindest unterstützte Version zu behandeln und nicht als die einzige Version, auf der der Treiber ausgeführt werden kann.
In der folgenden Tabelle sind die Versionsinformationen zusammengefasst, die von unterstützten Versionen von Windows zurückgegeben werden. Verwenden Sie die Informationen in der Spalte "Sonstige" oder Buildnummer, um zwischen Betriebssystemen mit identischen Versionsnummern zu unterscheiden.
Betriebssystem | Versionsnummer | dwMajorVersion | dwMinorVersion | Andere |
---|---|---|---|---|
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 (alle Versionen) | 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 | Nicht zutreffend |
Windows XP Professional x64 Edition (siehe Hinweis) | 5.2 | 5 | 2 | wProductType == VER_NT_WORKSTATION |
Windows XP | 5.1 | 5 | 1 | Nicht zutreffend |
Windows 2000 | 5.0 | 5 | 0 | Nicht zutreffend |
Nur ein 64-Bit-Kernelmodustreiber kann unter Windows XP Professional x64 Edition ausgeführt werden. Daher kann ein 32-Bit-Kernelmodustreiber die Überprüfung dieser Windows-Version sicher weglassen.
Anforderung | Wert |
---|---|
Header- | wdm.h (include Ntddk.h) |