Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Meskipun driver mode kernel dilarang mengakses memori yang dapat dipaging pada IRQL tinggi atau sambil memegang spin lock, tindakan seperti itu mungkin tidak diperhatikan jika halaman belum benar-benar dipangkas dari set kerja dan dipindahkan ke disk.
Ketika Force IRQL Checking diaktifkan, Driver Verifier memberikan tekanan ekstrem pada penggunaan memori sistem. Setiap kali driver yang diverifikasi meminta kunci putar, memanggil KeSynchronizeExecution, atau menaikkan IRQL ke DISPATCH_LEVEL atau lebih tinggi, semua kumpulan memori, kode, dan data dapat dipindahkan ke halaman sistem (termasuk kode dan data driver yang dapat dipindahkan ke halaman) dikeluarkan dari set kerja. Jika driver mencoba mengakses salah satu memori ini, Driver Verifier mengeluarkan pemeriksaan bug.
Dimulai dengan Windows Vista, opsi ini juga menyebabkan Pemverifikasi Driver mendeteksi kapan objek sinkronisasi tertentu disertakan dalam memori yang dapat di-pageable. Objek sinkronisasi ini tidak dapat di-petakan karena kernel sistem operasi mengaksesnya pada tingkat IRQL tinggi. Driver Verifier dapat mendeteksi struktur pageable KTIMER, PRKMUTEX, PKSPIN_LOCK, PRKEVENT, PKSPIN_LOCK, PRKSEMAPHORE, PERESOURCE, dan FAST_MUTEX.
Tekanan pada penggunaan memori ini tidak akan secara langsung memengaruhi driver yang tidak dipilih untuk verifikasi. Ketika driver yang tidak dipilih untuk verifikasi memunculkan IRQL, itu tidak memicu tindakan pemangkasan. Namun, ketika driver yang sedang diverifikasi menaikkan IRQL, Driver Verifier melakukan pemangkasan halaman yang dapat digunakan oleh driver yang tidak diverifikasi. Jadi kesalahan yang dilakukan oleh driver yang tidak diverifikasi kadang-kadang mungkin tertangkap ketika opsi ini aktif.
Memantau Kenaikan IRQL dan Pengunci Berputar
Jumlah kenaikan IRQL, kunci putar, dan panggilan ke KeSynchronizeExecution yang dilakukan oleh driver yang diverifikasi dapat dipantau. Berapa kali Driver Verifier telah memangkas memori pageable dari set kerja juga dapat dipantau. Statistik ini dapat ditampilkan oleh Driver Verifier Manager, baris perintah Verifier.exe, atau dalam file log. Lihat Pemantauan Penghitung Global untuk informasi lebih lanjut.
Ekstensi debugger kernel !verifier juga dapat digunakan untuk memantau statistik ini. Ini menyajikan informasi serupa dengan Driver Verifier Manager. Di Windows XP dan yang lebih baru, ekstensi !verifier 0x8 akan menampilkan log perubahan IRQL terbaru yang dibuat oleh driver yang sedang diverifikasi. Untuk informasi tentang ekstensi debugger, lihat Penelusuran Kesalahan Windows.
Memanggil KeEnterCriticalRegion atau KeLeaveCriticalRegion di DISPATCH_LEVEL atau di atas
KeEnterCriticalRegion dan KeLeaveCriticalRegion adalah API yang dapat Anda gunakan untuk menyinkronkan eksekusi urutan kode driver yang penting dengan pengiriman panggilan prosedur asinkron (APC) kernel biasa. API KeEnterCriticalRegion dan KeLeaveCriticalRegion tidak dapat dipanggil di IRQL = DISPATCH_LEVEL atau lebih tinggi. Memanggil KeEnterCriticalRegion atau KeLeaveCriticalRegion pada DISPATCH_LEVEL atau lebih tinggi dapat mengakibatkan kerusakan sistem atau memori.
Dimulai pada Windows 7, Pemverifikasi Driver mendeteksi panggilan ke API ini pada DISPATCH_LEVEL atau lebih tinggi jika opsi Pemeriksaan IRQL Paksa diaktifkan.
Mengaktifkan Opsi Ini
Anda dapat mengaktifkan fitur Force IRQL Checking untuk satu atau beberapa driver dengan menggunakan Driver Verifier Manager atau baris perintah Verifier.exe. Untuk detailnya, lihat Memilih Opsi Pemverifikasi Driver.
Pada baris perintah
Pada baris perintah, opsi Pemeriksaan Force IRQL diwakili oleh Bit 1 (0x2). Untuk mengaktifkan Pemeriksaan IRQL Paksa, gunakan nilai bendera 0x2 atau tambahkan 0x2 ke nilai bendera. Contohnya:
verifier /flags 0x2 /driver MyDriver.sysFitur ini akan aktif setelah boot berikutnya.
Anda juga dapat mengaktifkan dan menonaktifkan Force IRQL Checking tanpa me-reboot komputer dengan menambahkan parameter /volatile ke perintah . Contohnya:
verifier /volatile /flags 0x2 /adddriver MyDriver.sysPengaturan ini segera efektif, tetapi hilang ketika Anda mematikan atau me-reboot komputer. Untuk detailnya, lihat Menggunakan Pengaturan Volatil.
Fitur Force IRQL Checking juga disertakan dalam pengaturan standar. Contohnya:
verifier /standard /driver MyDriver.sysMenggunakan Pengelola Verifikasi Pengemudi
- Mulai Manajer Verifikasi Driver. Ketik Pemverifikasi di jendela Command Prompt.
- Pilih Buat pengaturan kustom (untuk pengembang kode) lalu klik Berikutnya.
- Pilih Pilih pengaturan individual dari daftar lengkap.
- Pilih (centang) Paksa pemeriksaan IRQL.
Fitur Force IRQL Checking juga disertakan dalam pengaturan standar. Untuk menggunakan fitur ini, di Driver Verifier Manager, klik Buat Pengaturan Standar.