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:
Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver. |
Berlaku untuk
IoAcquireCancelSpinLockIoCompleteRequestIoReleaseCancelSpinLockIoStartNextPacketKeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLock