OSVERSIONINFOEXW-Struktur (wdm.h)
Die RTL_OSVERSIONINFOEXW-Struktur enthält Informationen zur Betriebssystemversion.
Syntax
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;
Member
dwOSVersionInfoSize
Die Größe einer RTL_OSVERSIONINFOEXW-Struktur in Bytes. Dieser Member muss festgelegt werden, bevor die Struktur mit RtlGetVersion verwendet wird.
dwMajorVersion
Die Hauptversionsnummer des Betriebssystems. Für Windows 2000 ist die Hauptversionsnummer beispielsweise fünf. Weitere Informationen finden Sie in der Tabelle unter Hinweise.
dwMinorVersion
Die Nebenversionsnummer des Betriebssystems. Für Windows 2000 ist die Nebenversionsnummer beispielsweise 0 (null). Weitere Informationen finden Sie in der Tabelle unter Hinweise.
dwBuildNumber
Die Buildnummer des Betriebssystems.
dwPlatformId
Die Betriebssystemplattform. Für Win32 unter NT-basierten Betriebssystemen gibt RtlGetVersion den Wert VER_PLATFORM_WIN32_NT zurück.
szCSDVersion[128]
Die Service Pack-Versionszeichenfolge. Dieses Element enthält eine NULL-endende Zeichenfolge, z. B. "Service Pack 3", die das neueste Service Pack angibt, das auf dem System installiert ist. Wenn kein Service Pack installiert ist, initialisiert RtlGetVersion diese Zeichenfolge möglicherweise nicht. Initialisieren Sie szCSDVersion vor dem Aufruf von RtlGetVersion auf null (leere Zeichenfolge).
wServicePackMajor
Die Hauptversionsnummer des neuesten Service Packs, das auf dem System installiert ist. Für Service Pack 3 ist die Hauptversionsnummer beispielsweise drei. Wenn kein Service Pack installiert wurde, ist der Wert null.
wServicePackMinor
Die Nebenversionsnummer des zuletzt auf dem System installierten Service Packs. Beispielsweise ist für Service Pack 3 die Nebenversionsnummer 0 (null).
wSuiteMask
Die im System verfügbaren Produktsammlungen. Dieser Member ist auf null oder auf das bitweise 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, aber möglicherweise auf eine andere Version von Windows aktualisiert. Weitere Informationen zu diesem Flag-Bit finden Sie im folgenden Abschnitt hinweise. |
VER_SUITE_SMALLBUSINESS_RESTRICTED | Microsoft Small Business Server wird mit der restriktiven Clientlizenz installiert. Weitere Informationen zu diesem Flag-Bit 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 sind installiert. Dieser Wert wird immer festgelegt. Wenn VER_SUITE_TERMINAL festgelegt ist, 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 flag VER_SUITE_SMALLBUSINESS verlassen, um zu bestimmen, ob Small Business Server derzeit installiert ist. Sowohl dieses Flag als auch das VER_SUITE_SMALLBUSINESS_RESTRICTED-Flag werden festgelegt, wenn diese Produktsammlung installiert wird. Wenn Sie diese Installation auf Windows Server Standard Edition aktualisieren, wird das flag VER_SUITE_SMALLBUSINESS_RESTRICTED deaktiviert, aber das flag VER_SUITE_SMALLBUSINESS 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 aktualisiert wird, bleibt das flag VER_SUITE_SMALLBUSINESS festgelegt.
wProductType
Der Produkttyp. Dieser Member enthält zusätzliche Informationen zum System. Dieser Member kann einer der folgenden Werte sein:
Wert | Bedeutung |
---|---|
VER_NT_WORKSTATION | Windows 2000 oder höher Professional-Version |
VER_NT_DOMAIN_CONTROLLER | Windows 2000-Domänencontroller oder höher |
VER_NT_SERVER | Server unter Windows 2000 oder höher |
wReserved
Für die zukünftige Verwendung reserviert.
Bemerkungen
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 Routinen RtlGetVersion und RtlVerifyVersionInfo verwendet.
Die Verwendung von Versionsinformationen ist nicht immer die beste Möglichkeit, um zu testen, ob ein Feature verfügbar ist. Weitere Informationen 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 unter zukünftigen Windows-Versionen ausgeführt werden kann. Wenn Ihr Treiber eine bestimmte Betriebssystemversion erfordert, sollten Sie diese Version als unterstützte Mindestversion und nicht als einzige Version behandeln, unter 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 | Sonstiges |
---|---|---|---|---|
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 Releases) | 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 auf diese Version von Windows problemlos auslassen.
Anforderungen
Anforderung | Wert |
---|---|
Header | wdm.h (ntddk.h einschließen) |