Bagikan melalui


Aturan SpinLockSafe (wdm)

Aturan SpinLockSafe menentukan bahwa IoStartNextPacket dan IoCompleteRequest tidak dipanggil saat memegang kunci putar.

Aturan ini juga menentukan bahwa driver memanggil KeAcquireSpinLock atau KeAcquireSpinLockAtDpcLevel sebelum memanggil KeReleaseSpinLockFromDpcLevel atau KeReleaseSpinLock, dan bahwa ia memanggil IoAcquireCancelSpinLock sebelum memanggil IoReleaseCancelSpinLock.

Verifier Driver Statis dapat melaporkan pelanggaran palsu terhadap aturan ini jika driver menyertakan SpinLock berlapis, bahkan jika kunci spin tersebut diperoleh dan dilepaskan dengan benar.

Model driver: WDM

Cara menguji

Pada waktu kompilasi

Jalankan Verifier Driver Statis dan tentukan aturan SpinLockSafe .

Gunakan langkah-langkah berikut untuk menjalankan analisis kode Anda:
  1. Siapkan kode Anda (gunakan deklarasi jenis peran).
  2. Jalankan Pemverifikasi Driver Statis.
  3. Lihat dan analisis hasilnya.

Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver.

Berlaku untuk

IoAcquireCancelSpinLockIoCompleteRequestIoReleaseCancelSpinLockIoStartNextPacketKeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLock