Bagikan melalui


Seperangkat aturan peringatan (WDM)

Gunakan aturan ini untuk memverifikasi bahwa driver Anda dapat memproses RUN dengan benar dalam berbagai konteks dan mengikuti praktik terbaik yang direkomendasikan Microsoft.

Di bagian ini

Topik Deskripsi

CheckDeviceObjectFlags

Aturan CheckDeviceObjectFlags menentukan bahwa driver bus harus memeriksa apakah bendera objek perangkat untuk DO_POWER_PAGABLE dan DO_POWER_INRUSH diatur secara konsisten untuk FDO dan PDO anak. Aturan ini hanya berlaku untuk pengemudi bus.

CompletionEventChecking

Aturan CompletionEventChecking menentukan bahwa driver tidak memanggil IoMarkIrpPending dan KeSetEvent dalam rutinitas penyelesaian untuk IRP yang sama.

DeleteDevice

Aturan DeleteDevice menentukan bahwa driver tidak boleh mengandalkan Manajer I/O atau Manajer PnP untuk menjaga DeviceObject tetap hidup setelah panggilan ke IoDeleteDevice.

MultRemoveLock

Aturan MultRemoveLock memverifikasi bahwa IoAcquireRemoveLock hanya dipanggil dengan satu Hapus Kunci unik. Ini adalah aturan peringatan.

PagedCode

Aturan PagedCode menentukan bahwa driver memanggil makro PAGED_CODE hanya ketika dijalankan di IRQL <= APC_LEVEL.

PagedCodeAtPowerTrans

Aturan PagedCodeAtPowerTrans menentukan bahwa driver tidak boleh memanggil PAGED_CODE saat merespons sistem IRP_MJ_POWER Irp (IRP_MN_SET_POWER) dan ke perangkat IRP_MJ_POWER Irp (IRP_MN_SET_POWER).

ReservedDDIs

Aturan ReservedDDIs memverifikasi bahwa driver tidak memanggil fungsi cadangan apa pun.

Untuk memilih seperangkat aturan peringatan

  1. Pilih proyek driver Anda (.vcxProj) di Microsoft Visual Studio. Dari menu Driver , klik Luncurkan Pemverifikasi Driver Statis....

  2. Klik tab Aturan . Di bawah Seperangkat Aturan, pilih Peringatan.

    Untuk memilih seperangkat aturan default dari jendela prompt perintah pengembang Visual Studio, tentukan Warning.sdv dengan opsi /check . Contohnya:

    msbuild /t:sdv /p:Inputs="/check:Warning.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat dalam perintah Driver dan Pemverifikasi Driver Statis (MSBuild).