Aturan CriticalRegions (wdm)
Aturan CriticalRegions menentukan bahwa driver harus memanggil KeEnterCriticalRegion sebelum memanggil KeLeaveCriticalRegion dan bahwa driver memanggil KeLeaveCriticalRegion sebelum panggilan berikutnya ke KeEnterCriticalRegion. (Panggilan berlapis diizinkan.)
Aturan ini juga menentukan bahwa driver memanggil KeLeaveCriticalRegion untuk mengaktifkan kembali pengiriman panggilan prosedur asinkron kernel normal (APC) sebelum kembali.
Dokumentasi WDK KeEnterCriticalRegion dan KeLeaveCriticalRegion menjelaskan bahwa pemanggil fungsi-fungsi ini dapat berjalan di IRQL<=APC_LEVEL. Dalam situasi ini, aturan ini memberlakukan rekomendasi praktik terbaik.
Model driver: WDM
Pemeriksaan bug ditemukan dengan aturan ini: Pemeriksaan Bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040003)
Cara menguji
Pada waktu kompilasi |
---|
Jalankan Pemverifikasi Driver Statis dan tentukan aturan CriticalRegions . 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 (tambahan). |
Berlaku untuk
ExEnterCriticalRegionAndAcquireResourceExclusiveExReleaseResourceAndLeaveCriticalRegionKeEnterCriticalRegionKeLeaveCriticalRegion
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk