Freigeben über


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)

Weitere Informationen

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo