Bagikan melalui


Seperangkat aturan penggunaan DDI (NDIS)

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

Di bagian ini

Topik Deskripsi

Init_DeRegisterInterrupt

Aturan Init_DeRegisterInterrupt menentukan bahwa jika NdisMRegisterInterruptEx dipanggil setidaknya sekali selama MPInitilize, NdisMDeregisterInterruptEx harus dipanggil setidaknya sekali di MPHaltEx.

Init_NdisAllocateIoWorkItem

Aturan Init_NdisAllocateIoWorkItem menentukan bahwa jika NdisAllocateIoWorkItem dipanggil setidaknya sekali selama MiniportInitializeEx, fungsi NdisFreeIoWorkItem harus:

Init_RegisterInterrupt

Aturan Init_RegisterInterrupt menentukan bahwa pendaftaran gangguan, yang biasanya terjadi selama inisialisasi, harus dibatalkan jika ada yang salah dalam proses inisialisasi atau selama penghentian driver miniport.

Jika NdisMRegisterInterruptEx dipanggil setidaknya satu kali selama MiniportInitializeEx, fungsi NdisMDeregisterInterruptEx harus dipanggil setidaknya satu kali di MiniportHaltEx.

Init_RegisterSG

Aturan Init_RegisterSG menentukan bahwa pendaftaran daftar pengumpulan sebar (SG), yang biasanya terjadi selama inisialisasi, harus dibatalkan jika ada yang salah dalam proses inisialisasi atau selama penghentian driver miniport.

Jika NdisMRegisterScatterGatherDma dipanggil setidaknya satu kali selama MiniportInitializeEx, fungsi NdisMDeregisterScatterGatherDma harus dipanggil setidaknya satu kali di MiniportHaltEx.

NdisFDeregisterFilterDriver

Driver filter harus memanggil NdisFDeregisterFilterDriver dari rutinitas FilterDriverUnload.

NdisMDeregisterInterruptEx

Setelah NdisMDeregisterInterruptEx mengembalikan kontrol, driver miniport tidak dapat memanggil fungsi NdisMSynchronizeWithInterruptEx .

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.

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