Bagikan melalui


Seperangkat aturan penggunaan DDI (WDM)

Gunakan aturan ini untuk memverifikasi bahwa driver Anda menggunakan DDI WDM dengan benar.

Di bagian ini

Topik Deskripsi

DebugBreakUsage

Aturan DebugBreakUsage menentukan bahwa driver tidak boleh memanggil DbgBreakPoint atau DbgBreakPointWithStatus. Aturan ini hanya berlaku saat Anda membangun versi driver non-debug.

DoubleFetch

Aturan DoubleFetch memeriksa pengambilan ganda dari penunjuk memori mode pengguna. Akses ganda mode kernel terhadap memori mode pengguna dapat menyebabkan masalah keamanan kondisi balapan kritis. Saat mengakses data mode pengguna, kode mode kernel perlu membuat salinan data mode pengguna secara lokal dan menghindari akses data mode pengguna beberapa kali. Gagal melakukannya mengakibatkan jenis masalah yang dikenal sebagai "pengambilan ganda", di mana data dapat berubah setelah pertama kali diakses.

NullCheck

Aturan NullCheck memverifikasi bahwa nilai NULL di dalam kode driver tidak didereferensikan nanti di driver. Aturan ini melaporkan cacat jika salah satu kondisi ini benar:

  • Ada penetapan NULL yang akan didereferensikan kemudian.
  • Ada parameter global untuk prosedur dalam driver yang mungkin bernilai NULL dan yang didereferensikan kemudian, serta ada pemeriksaan secara eksplisit pada driver yang menunjukkan bahwa nilai awal penunjuk tersebut mungkin NULL.

Dengan pelanggaran aturan NullCheck, pernyataan kode yang paling relevan disorot di panel pohon pelacakan. Untuk informasi selengkapnya tentang bekerja dengan output laporan, lihat Laporan Pemverifikasi Driver Statis dan Memahami Penampil Jejak.

SafeStrings

Aturan SafeStrings menentukan bahwa driver hanya memanggil fungsi manipulasi string yang melindungi sistem dari gangguan yang tidak disengaja atau berbahaya. Fungsi string aman ini untuk driver didefinisikan dalam Ntstrsafe.h.

DDI Kedaluwarsa

Aturan ObsoleteDIS menentukan bahwa driver tidak boleh memanggil FsRtlPrivateLock. Fungsi ini usang. Gunakan FsRtlFastLock sebagai gantinya.

Untuk memilih seperangkat aturan penggunaan DDI

  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 DDIUsage.

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

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

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