Bagikan melalui


Kesalahan Tambahan dalam Menangani RUNTIME

Berikut ini adalah kesalahan tambahan yang terkadang dilakukan driver saat menangani IRP.

IRP yang hilang atau selesai dua kali

Masalah ini, bersama dengan panggilan yang hilang ke rutinitas manajer I/O seperti IoStartNextPacket, sering terjadi di jalur penanganan kesalahan. Tinjauan cepat jalur driver dapat menemukan masalah tersebut.

Konvergensi jalur IOCTL publik dan IOCTL privat

Sebagai aturan umum, driver harus berisi jalur eksekusi terpisah untuk IOCTL publik dan privat (atau FSCTL). Driver tidak dapat menentukan apakah permintaan IOCTL atau FSCTL berasal dari mode kernel atau mode pengguna dengan melihat kode kontrol. Akibatnya, menangani kode publik dan privat di jalur eksekusi yang sama (atau melakukan validasi minimal dan kemudian memanggil rutinitas yang sama) dapat membuka pengemudi untuk pelanggaran keamanan. Jika IOCTL atau FSCTL privat diistimewakan, maka pengguna yang tidak memiliki hak istimewa yang mengetahui kode kontrol mungkin dapat memperoleh akses ke dalamnya. Oleh karena itu, jika driver Anda mendukung permintaan IOCTL atau FSCTL privat, pastikan driver tersebut menangani permintaan tersebut secara terpisah dari IOCTL atau FSCTL publik yang juga harus didukungnya.