Aturan QueuedSpinLock (wdm)
Aturan QueuedSpinLock menentukan bahwa driver memanggil KeAcquireInStackQueuedSpinLock sebelum memanggil KeReleaseInStackQueuedSpinLock dan bahwa driver memanggil KeReleaseInStackQueuedSpinLock sebelum panggilan berikutnya ke KeAcquireInStackQueuedSpinLock.
Panggilan berlapis diizinkan jika mereka memperoleh dan merilis sumber daya yang berbeda. Panggilan berlapis untuk memperoleh atau merilis sumber daya yang sama melanggar aturan ini.
Aturan ini juga menentukan bahwa driver telah memanggil KeReleaseInStackQueuedSpinLock untuk melepaskan semua kunci putar antrean sebelum pengiriman rutin atau membatalkan rutinitas berakhir.
Model driver: WDM
Pemeriksaan bug ditemukan dengan aturan ini: Pemeriksaan Bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040006)
Cara menguji
Pada waktu kompilasi |
---|
Jalankan Pemverifikasi Driver Statis dan tentukan aturan QueuedSpinLock . Gunakan langkah-langkah berikut untuk menjalankan analisis kode Anda:
Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver. |
Pada durasi |
---|
Jalankan Pemverifikasi Driver dan pilih opsi pemeriksaan kepatuhan DDI . |
Berlaku untuk
KeAcquireInStackQueuedSpinLockKeReleaseInStackQueuedSpinLock