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

RtlIsNtDdiVersionAvailable