Aturan IrqlIoRtlZwPassive (wdm)
Aturan IrqlIoRtlZwPassive menentukan bahwa driver memanggil DDI yang tercantum dalam aturan hanya ketika dijalankan di IRQL = PASSIVE_LEVEL.
Aturan ini menambah aturan IRQL Pemeriksaan Kepatuhan DDI untuk PASSIVE_LEVEL. Untuk informasi selengkapnya, lihat Seperangkat aturan Irql (WDM).
Model driver: WDM
Pemeriksaan bug ditemukan dengan aturan ini: Pemeriksaan Bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x20023)
Contoh
Kode berikut melanggar aturan ini:
//
// KeAcquireSpinLock raises the IRQL to DISPATCH_LEVEL.
//
KeAcquireSpinLock (&Lock, &OldIrql);
//
// ERROR: IoGetDriverDirectory can only be called at IRQL == PASSIVE_LEVEL.
//
IoGetDriverDirectory (DriverObject,
DriverDirectoryData,
0,
&DirectoryHandle);
KeReleaseSpinLock (&Lock, OldIrql);
Untuk informasi selengkapnya tentang tingkat IRQL, lihat Mengirimkan Rutinitas dan RUNQL dan Mengelola Prioritas Perangkat Keras.
Cara menguji
Pada waktu kompilasi |
---|
Jalankan Verifier Driver Statis dan tentukan aturan IrqlIoRtlZwPassive . Gunakan langkah-langkah berikut untuk menjalankan analisis kode Anda:
Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver. |
Pada durasi |
---|
Anda dapat mengaktifkan DDI Compliance - Aturan IRQL tambahan untuk satu atau beberapa driver dengan menggunakan baris perintah Verifier.exe. Untuk detailnya, lihat Memilih Opsi Pemverifikasi Driver. Anda harus memulai ulang komputer untuk mengaktifkan atau menonaktifkan DDI Compliance - Aturan IRQL tambahan. Pada baris perintah, Kepatuhan DDI - Pemeriksaan IRQL tambahan diwakili oleh nilai kelas aturan 35. Contohnya:
ATAU
Pemeriksaan IRQL tambahan akan aktif setelah PC di-boot ulang. |
Berlaku untuk
IoCreateFileEx
IoCreateFileSpecifyDeviceObjectHint
IoGetDeviceDirectory
IoGetDriverDirectory
IoOpenDeviceInterfaceRegistryKey
IoopenDeviceRegistryKey
RtlCreateRegistryKey
RtlCreateSystemVolumeInformationFolder
RtlWriteRegistryValue
ZwCreateDirectoryObject
ZwCreateFile
ZwCreateKeyTransacted
ZwDeleteFile
ZwDeleteValueKey
ZwFlushBuffersFileEx
ZwFlushBuffersFile
ZwRenameKey
ZwSetEaFile
ZwSetInformationFile
ZwSetInformationKey
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