Fungsi IoIsWdmVersionAvailable (wdm.h)
IoIsWdmVersionAvailable rutin memeriksa apakah versi WDM tertentu didukung oleh sistem operasi.
Sintaks
BOOLEAN IoIsWdmVersionAvailable(
[in] UCHAR MajorVersion,
[in] UCHAR MinorVersion
);
Parameter
[in] MajorVersion
Menentukan nomor versi utama WDM yang diminta.
[in] MinorVersion
Menentukan nomor versi minor WDM yang diminta.
Nilai kembali
IoIsWdmVersionAvailable mengembalikan TRUE jika versi WDM yang disediakan sistem operasi lebih besar dari atau sama dengan nomor versi WDM yang diminta. Jika tidak, ia mengembalikan FALSE.
Keterangan
Driver harus menggunakan rutinitas RtlIsNtDdiVersionAvailable alih-alih rutinitas IoIsWdmVersionAvailable .
Driver lintas platform harus menggunakan rutinitas ini untuk memeriksa versi WDM sebelum melakukan operasi apa pun yang bervariasi menurut platform atau tidak didukung di semua versi WDM.
Konstanta WDM_MAJORVERSION dan WDM_MINORVERSION, yang ditentukan dalam file header Wdm.h, tentukan nomor versi utama dan minor WDM untuk versi Windows saat ini. Berikut ini mencantumkan versi WDM yang disediakan dengan setiap sistem operasi.
Sistem operasi | Versi utama WDM | Versi minor WDM |
---|---|---|
Windows 7 | 6 | 0x00 |
Windows Server 2008 R2 | 6 | 0x00 |
Windows Server 2008 | 6 | 0x00 |
Windows Vista | 6 | 0x00 |
Windows Server 2003 | 1 | 0x30 |
Windows XP | 1 | 0x20 |
Windows 2000 | 1 | 0x10 |
Windows Me | 1 | 0x05 |
Windows 98 | 1 | 0x00 |
Perhatikan bahwa nomor versi minor didefinisikan sebagai nilai heksadesimal.
Versi WDM yang lebih baru mendukung semua fitur yang tersedia dalam versi WDM sebelumnya; artinya, setiap versi WDM adalah superset dari versi WDM sebelumnya.
Panggilan berikut mengembalikan TRUE pada salah satu sistem operasi yang tercantum, karena semua sistem ini mendukung semua fitur WDM 1.0:
bVersion = IoIsWdmVersionAvailable(1,0);
Contoh berikut menunjukkan bagaimana driver dapat mendeteksi sistem operasi saat ini secara dinamis:
if (IoIsWdmVersionAvailable(1, 0x10)) {
//
//If WDM 1.10 is supported, this is Windows 2000
//or better.
//
} else if (IoIsWdmVersionAvailable(1, 5)) {
//
//If WDM 1.05 is supported, this is Windows ME
//or better.
//
} else {
//
//WDM 1.0 is always supported, so this is Windows 98,
//Windows 98 SE, or better.
//
}
Seperti yang ditunjukkan contoh, memanggil IoIsWdmVersionAvailable(1, 5) mengembalikan TRUE pada Windows Me, Windows 2000, dan sistem operasi yang berhasil, tetapi FALSE pada Windows 98 dan Windows 98 SE.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk