Fungsi VerifyVersionInfoA (winbase.h)
Membandingkan sekumpulan persyaratan versi sistem operasi dengan nilai yang sesuai untuk versi sistem yang sedang berjalan. Fungsi ini tunduk pada perilaku berbasis manifes. Untuk informasi lebih lanjut, lihat bagian Keterangan.
Catatan: Fungsi ini tidak digunakan lagi untuk Windows 10. Lihat menargetkan aplikasi Anda untuk Windows untuk informasi selengkapnya.
Sintaks
BOOL VerifyVersionInfoA(
[in] LPOSVERSIONINFOEXA lpVersionInformation,
[in] DWORD dwTypeMask,
[in] DWORDLONG dwlConditionMask
);
Parameter
[in] lpVersionInformation
Penunjuk ke struktur OSVERSIONINFOEX yang berisi persyaratan versi sistem operasi untuk dibandingkan. Parameter dwTypeMask menunjukkan anggota struktur ini yang berisi informasi untuk dibandingkan.
Anda harus mengatur anggota dwOSVersionInfoSize dari struktur ini ke sizeof(OSVERSIONINFOEX)
. Anda juga harus menentukan data yang valid untuk anggota yang ditunjukkan oleh dwTypeMask. Fungsi mengabaikan anggota struktur yang bit dwTypeMask yang sesuai tidak diatur.
[in] dwTypeMask
Masker yang menunjukkan anggota struktur OSVERSIONINFOEX yang akan diuji. Parameter ini bisa menjadi satu atau beberapa nilai berikut.
[in] dwlConditionMask
Jenis perbandingan yang akan digunakan untuk setiap anggota lpVersionInfo dibandingkan. Untuk membangun nilai ini, panggil fungsi VerSetConditionMask atau makro VER_SET_CONDITION sekali untuk setiap anggota OSVERSIONINFOEX dibandingkan.
Mengembalikan nilai
Jika sistem operasi yang sedang berjalan memenuhi persyaratan yang ditentukan, nilai yang dikembalikan adalah nilai bukan nol.
Jika sistem saat ini tidak memenuhi persyaratan, nilai yang dikembalikan adalah nol dan GetLastError mengembalikan ERROR_OLD_WIN_VERSION.
Jika fungsi gagal, nilai yang dikembalikan adalah nol dan GetLastError mengembalikan kode kesalahan selain ERROR_OLD_WIN_VERSION.
Keterangan
Fungsi VerifyVersionInfo mengambil informasi versi tentang sistem operasi yang sedang berjalan dan membandingkannya dengan anggota struktur lpVersionInfo yang valid. Ini memungkinkan Anda untuk dengan mudah menentukan keberadaan serangkaian kondisi versi sistem operasi yang diperlukan. Lebih baik menggunakan VerifyVersionInfo daripada memanggil fungsi GetVersionEx untuk melakukan perbandingan Anda sendiri.
Biasanya, VerifyVersionInfo mengembalikan nilai bukan nol hanya jika semua pengujian yang ditentukan berhasil. Namun, versi paket utama, minor, dan layanan diuji secara hierarkis karena versi sistem operasi adalah kombinasi dari nilai-nilai ini. Jika ada kondisi untuk versi utama, kondisi tersebut menggantikan kondisi yang ditentukan untuk versi minor dan versi paket layanan. (Anda tidak dapat menguji versi utama yang lebih besar dari 5 dan versi minor kurang dari atau sama dengan 1. Jika Anda menentukan pengujian seperti itu, fungsi akan mengubah permintaan untuk menguji versi minor yang lebih besar dari 1 karena melakukan operasi yang lebih besar dari pada versi utama.)
Fungsi ini menguji nilai-nilai ini dalam urutan ini: versi utama, versi minor, dan versi paket layanan. Fungsi terus menguji nilai saat sama, dan berhenti ketika salah satu nilai tidak memenuhi kondisi yang ditentukan. Misalnya, jika Anda menguji sistem yang lebih besar dari atau sama dengan paket layanan 5.1 versi 1, pengujian berhasil jika versi saat ini adalah 6.0. (Versi utama lebih besar dari versi yang ditentukan, sehingga pengujian berhenti.) Dengan cara yang sama, jika Anda menguji sistem yang lebih besar dari atau sama dengan versi 5.1 paket layanan 1, pengujian berhasil jika versi saat ini adalah 5.2. (Versi minor lebih besar dari versi yang ditentukan, sehingga pengujian berhenti.) Namun, jika Anda menguji sistem yang lebih besar dari atau sama dengan versi 5.1 paket layanan 1, pengujian gagal jika versi saat ini adalah paket layanan 5.0 2. (Versi minor tidak lebih besar dari versi yang ditentukan, sehingga pengujian berhenti.)
Untuk memverifikasi berbagai versi sistem, Anda harus memanggil VerifyVersionInfo dua kali. Misalnya, untuk memverifikasi bahwa versi sistem lebih besar dari 5.0 tetapi kurang dari atau sama dengan 5.1, pertama-tama panggil VerifyVersionInfo untuk menguji bahwa versi utama adalah 5 dan versi minor lebih besar dari 0, lalu panggil VerifyVersionInfo lagi untuk menguji bahwa versi utama adalah 5 dan versi minor kurang dari atau sama dengan 1.
Mengidentifikasi sistem operasi saat ini biasanya bukan cara terbaik untuk menentukan apakah fitur sistem operasi tertentu ada. Ini karena sistem operasi mungkin memiliki fitur baru yang ditambahkan dalam DLL yang dapat didistribusikan ulang. Daripada menggunakan GetVersionEx untuk menentukan platform sistem operasi atau nomor versi, uji keberadaan fitur itu sendiri. Untuk informasi selengkapnya, lihat Versi Sistem Operasi.
Untuk memverifikasi apakah sistem operasi saat ini adalah Windows versi Media Center atau Tablet PC, panggil GetSystemMetrics.
Windows 10: VerifyVersionInfo mengembalikan false saat dipanggil oleh aplikasi yang tidak memiliki manifes kompatibilitas untuk Windows 8.1 atau Windows 10 jika parameter lpVersionInfo diatur sehingga menentukan Windows 8.1 atau Windows 10, bahkan ketika versi sistem operasi saat ini diatur Windows 8.1 atau Windows 10. Secara khusus, VerifyVersionInfo memiliki perilaku berikut:
- Jika aplikasi tidak memiliki manifes, VerifyVersionInfo berperilaku seolah-olah versi sistem operasi Windows 8 (6.2).
- Jika aplikasi memiliki manifes yang berisi GUID yang sesuai dengan Windows 8.1, VerifyVersionInfo berperilaku seolah-olah versi sistem operasi Windows 8.1 (6.3).
- Jika aplikasi memiliki manifes yang berisi GUID yang sesuai dengan Windows 10, VerifyVersionInfo berperilaku seolah-olah versi sistem operasi Windows 10 (10.0).
Untuk memanifestasikan aplikasi Anda untuk Windows 8.1 atau Windows 10, lihat Menargetkan aplikasi Anda untuk Windows.
Contoh
Misalnya, lihat Memverifikasi Versi Sistem.
Catatan
Header winbase.h mendefinisikan VerifyVersionInfo sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur 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] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |