Struktur OSVERSIONINFOEXA (winnt.h)
Berisi informasi versi sistem operasi. Informasi tersebut mencakup nomor versi utama dan minor, nomor build, pengidentifikasi platform, dan informasi tentang suite produk dan Paket Layanan terbaru yang diinstal pada sistem. Struktur ini digunakan dengan fungsi GetVersionEx dan VerifyVersionInfo .
Sintaks
typedef struct _OSVERSIONINFOEXA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
Anggota
dwOSVersionInfoSize
Ukuran struktur data ini, dalam byte. Atur anggota ini ke sizeof(OSVERSIONINFOEX)
.
dwMajorVersion
Nomor versi utama sistem operasi. Untuk informasi selengkapnya, lihat Keterangan.
dwMinorVersion
Nomor versi minor sistem operasi. Untuk informasi selengkapnya, lihat Keterangan.
dwBuildNumber
Nomor build sistem operasi.
dwPlatformId
Platform sistem operasi. Anggota ini dapat VER_PLATFORM_WIN32_NT (2).
szCSDVersion[128]
String yang dihentikan null, seperti "Paket Layanan 3", yang menunjukkan Paket Layanan terbaru yang diinstal pada sistem. Jika tidak ada Paket Layanan yang diinstal, string kosong.
wServicePackMajor
Nomor versi utama paket layanan terbaru yang diinstal pada sistem. Misalnya, untuk Paket Layanan 3, nomor versi utama adalah 3. Jika tidak ada Paket Layanan yang diinstal, nilainya adalah nol.
wServicePackMinor
Nomor versi minor dari Paket Layanan terbaru yang diinstal pada sistem. Misalnya, untuk Paket Layanan 3, nomor versi minor adalah 0.
wSuiteMask
Sedikit masker yang mengidentifikasi suite produk yang tersedia pada sistem. Anggota ini bisa menjadi kombinasi dari nilai berikut.
wProductType
Informasi tambahan apa pun tentang sistem. Anggota ini bisa menjadi salah satu nilai berikut.
wReserved
Disiapkan untuk penggunaan masa mendatang.
Keterangan
Mengandalkan informasi versi bukanlah cara terbaik untuk menguji fitur. Sebagai gantinya, lihat dokumentasi untuk fitur yang menarik. Untuk informasi selengkapnya tentang teknik umum untuk deteksi fitur, lihat Versi Sistem Operasi.
Jika Anda harus memerlukan sistem operasi tertentu, pastikan untuk menggunakannya sebagai versi minimum yang didukung, daripada merancang pengujian untuk satu sistem operasi. Dengan cara ini, kode deteksi Anda akan terus berfungsi pada versi Windows yang akan datang.
Tabel berikut ini meringkas nilai yang dikembalikan oleh versi Windows yang didukung. Gunakan informasi dalam kolom berlabel "Lainnya" untuk membedakan antara sistem operasi dengan nomor versi yang identik.
Sistem operasi | Nomor Versi | dwMajorVersion | dwMinorVersion | Lainnya |
---|---|---|---|---|
Windows 10 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Server Windows 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 | Tidak berlaku |
Windows 2000 | 5.0 | 5 | 0 | Tidak berlaku |
*Untuk aplikasi yang telah dimanifestasikan untuk Windows 8.1 atau Windows 10. Aplikasi yang tidak dimanifestasikan untuk Windows 8.1 atau Windows 10 akan mengembalikan nilai versi OS Windows 8 (6.2). Untuk memanifestasikan aplikasi Anda untuk Windows 8.1 atau Windows 10, lihat Menargetkan aplikasi Anda untuk Windows. |
Anda tidak boleh hanya mengandalkan bendera VER_SUITE_SMALLBUSINESS untuk menentukan apakah Small Business Server telah diinstal pada sistem, karena bendera ini dan bendera VER_SUITE_SMALLBUSINESS_RESTRICTED diatur ketika rangkaian produk ini diinstal. Jika Anda memutakhirkan penginstalan ini ke Windows Server, Edisi Standar, bendera VER_SUITE_SMALLBUSINESS_RESTRICTED akan dihapus—namun, bendera VER_SUITE_SMALLBUSINESS akan tetap ditetapkan. Dalam hal ini, ini menunjukkan bahwa Small Business Server pernah diinstal pada sistem ini. Jika penginstalan ini ditingkatkan lebih lanjut ke Windows Server, Enterprise Edition, bendera VER_SUITE_SMALLBUSINESS akan tetap diatur.
Jika mode kompatibilitas berlaku, struktur OSVERSIONINFOEX berisi informasi tentang sistem operasi yang dipilih untuk kompatibilitas aplikasi.
Untuk menentukan apakah aplikasi berbasis Win32 berjalan di WOW64, panggil fungsi IsWow64Process . Untuk menentukan apakah sistem menjalankan Windows versi 64-bit, panggil fungsi GetNativeSystemInfo .
Fungsi GetSystemMetrics menyediakan informasi tambahan berikut tentang sistem operasi saat ini.
Produk | Pengaturan |
---|---|
Windows Server 2003 R2 | SM_SERVERR2 |
Windows XP Media Center Edition | SM_MEDIACENTER |
Windows XP Starter Edition | SM_STARTER |
Windows XP Tablet Edisi PC | SM_TABLETPC |
Contoh
Misalnya, lihat Mendapatkan Versi Sistem.
Catatan
Header winnt.h mendefinisikan OSVERSIONINFOEX sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | winnt.h (termasuk Windows.h) |