Bagikan melalui


Aturan MarkingQueuedIrps (wdm)

Aturan MarkingQueuedIrps menentukan bahwa driver memanggil IoMarkIrpPending untuk IRP yang hanya memerlukan pemrosesan lebih lanjut sambil menahan kunci putar. Aturan ini hanya berlaku ketika driver menambahkan IRP ke antrean yang dikelola driver.

Secara khusus, driver melanggar aturan ini hanya ketika semua peristiwa berikut terjadi.

Driver harus memanggil IoMarkIrpPending untuk IRP yang diantrekan hanya saat memegang kunci putaran. Jika tidak, IRP dapat dihapus dari antrean, diselesaikan oleh rutinitas driver lain, dan dibebaskan oleh sistem sebelum panggilan ke IoMarkIrpPending terjadi, sehingga menyebabkan crash.

Untuk informasi selengkapnya, lihat Menyinkronkan Pembatalan IRP.

Model driver: WDM

Cara menguji

Pada waktu kompilasi

Jalankan Pemverifikasi Driver Statis dan tentukan aturan MarkingQueuedIrps .

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

InsertHeadListIoCallDriverIoMarkIrpPendingKeAcquireInStackQueuedSpinLockKeAcquireSpinLockKeInsertByKeyDeviceQueueKeInsertDeviceQueueKeInsertQueueDpcKeReleaseInStackQueuedSpinLockKeReleaseSpinLockPoCallDriverRemoveHeadList