Bagikan melalui


Pemeriksaan MDL Invariant untuk Tumpukan

Opsi Invariant MDL Checking for Stack memantau bagaimana driver menangani buffer MDL yang invarian di seluruh tumpukan driver. Driver Verifier dapat mendeteksi modifikasi ilegal buffer MDL invariant. Untuk menggunakan opsi ini, Verifikasi I/O harus diaktifkan pada setidaknya satu driver.

Nota Opsi ini tersedia dimulai dengan Windows 8.

Opsi Invariant MDL Checking for Stack memastikan bahwa driver mengikuti aturan untuk buffer MDL invarian hanya pada saat permintaan meninggalkan driver stack.

Pertama kali IRP dengan MDL invarian terlihat dalam rutinitas IoCallDriver , tanda tangan unik dihitung dari konten buffer MDL yang invarian dan disimpan dalam database internal. Selama penyelesaian IRP dalam rutinitas IoCompleteRequest, jika IRP masih membawa MDL yang tetap untuk mana kami telah merekam tanda tangan, Driver Verifier memvalidasi bahwa buffer tidak berubah.

Buffer invariant, untuk permintaan tulis, tidak dapat dimodifikasi sepanjang masa pakai IRP. Untuk permintaan baca, buffer invariant tidak dapat dimodifikasi pada jalur pengirimannya, sehingga perbandingan tanda tangan buffer dilakukan pada panggilan terakhir ke IoCallDriver.

Opsi Invariant MDL Checking for Stack memverifikasi invariansi buffer MDL di seluruh tumpukan driver, tanpa memperhatikan apa yang terjadi pada buffer saat melewati driver individu di tumpukan. Opsi ini bersifat global dan tidak dapat diberlakukan secara selektif berdasarkan per driver. Opsi Invariant MDL Checking for Stack hanya dapat menangkap pelanggaran, tanpa dapat menentukan driver yang melanggar invariansi buffer. Untuk membantu menentukan driver yang rusak, gunakan opsi Invariant MDL Checking for Driver , yang melakukan validasi invariansi konten buffer pada setiap panggilan ke IoCallDriver dan IoCompleteRequest DDI.

Mengaktifkan opsi ini

Anda dapat mengaktifkan fitur Invariant MDL Checking for Stack untuk satu atau beberapa driver dengan menggunakan Driver Verifier Manager atau baris perintah Verifier.exe. Anda harus memulai ulang komputer untuk mengaktifkan atau menonaktifkan opsi Invariant MDL Checking for Stack. Untuk informasi selengkapnya, lihat Memilih Opsi Pemverifikasi Driver.

Untuk mengaktifkan opsi Invariant MDL Checking for Stack, Anda juga harus mengaktifkan Verifikasi I/O.

  • Pada baris perintah

    Pada baris perintah, Invariant MDL Checking for Stack diwakili oleh 0x00002000 (Bit 13). Untuk mengaktifkan Invariant MDL Checking for Stack, gunakan nilai bendera 0x00002010 atau tambahkan 0x00002010 ke nilai bendera. Nilai ini mengaktifkan Verifikasi I/O (0x10) dan Pemeriksaan MDL Invariant untuk Tumpukan (0x00002000). Contohnya:

    verifier /flags 0x00002010 /driver MyDriver.sys
    

    Fitur ini akan aktif setelah boot berikutnya.

  • Menggunakan Pengelola Verifikasi Pengemudi

    1. Mulai Manajer Verifikasi Driver. Ketik Pemverifikasi di jendela Command Prompt.
    2. Pilih Buat pengaturan kustom (untuk pengembang kode) lalu klik Berikutnya.
    3. Pilih Pilih pengaturan individual dari daftar lengkap.
    4. Pilih (centang) Verifikasi I/O dan Pemeriksaan MDL Invariant untuk Stack.
    5. Mulai ulang komputer.