Bagikan melalui


Pelacakan Kumpulan

Pelacakan Kumpulan memantau alokasi memori yang dibuat oleh driver. Pada saat driver dibongkar, Driver Verifier memastikan bahwa semua alokasi yang dibuat oleh driver telah dibebaskan.

Alokasi memori yang belum lama (juga disebut kebocoran memori) adalah penyebab umum performa sistem operasi yang diturunkan. Ini dapat memfragmentasi kumpulan sistem dan akhirnya menyebabkan sistem crash.

Ketika opsi ini aktif, Driver Verifier akan mengeluarkan pemeriksaan bug 0xC4 (dengan Parameter 1 sama dengan 0x62) jika driver membongkar tanpa membebaskan semua alokasinya.

Jika Driver Verifier mengeluarkan pemeriksaan bug ini dengan Parameter 1 sama dengan 0x51, 0x52, 0x53, 0x54, atau 0x59, driver telah menulis ke memori di luar alokasinya. Dalam hal ini, Anda harus mengaktifkan fitur Kumpulan Khusus untuk menemukan sumber kesalahan.

Lihat 0xC4 Pemeriksaan Bug (DRIVER_VERIFIER_DETECTED_VIOLATION) untuk daftar parameter pemeriksaan bug.

Dimulai dengan Windows Vista, mengaktifkan opsi Pelacakan Kumpulan juga memungkinkan pelacakan halaman terkunci. Ketika opsi ini aktif, Pemverifikasi Driver akan mengeluarkan 0xCB Pemeriksaan Bug (DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS) jika driver gagal melepaskan halaman terkunci setelah operasi I/O.

Di Windows 7 dan versi yang lebih baru dari sistem operasi Windows, opsi Pelacakan Kumpulan mendukung memori yang dialokasikan dengan menggunakan API kernel berikut:

Di Windows 7 dan versi yang lebih baru dari sistem operasi Windows, ketika Pelacakan Kumpulan diaktifkan, Driver Verifier dapat mendeteksi upaya untuk mengalokasikan memori kumpulan kernel dengan kuota dalam konteks proses Menganggur. Upaya seperti itu biasanya berarti bahwa driver mengalokasikan memori dari rutinitas DPC. Rangkaian atau konteks proses untuk rutinitas DPC tidak dapat diandalkan, jadi mencoba menagih kuota ke proses tersebut salah.

Pemantauan Pelacakan Kumpulan

Statistik alokasi kumpulan memori dapat dipantau secara terpisah untuk setiap driver yang sedang diverifikasi. Statistik ini dapat ditampilkan oleh Driver Verifier Manager, baris perintah Verifier.exe, atau dalam file log. Lihat Memantau Penghitung Individu untuk detailnya.

Ekstensi debugger kernel !verifier 0x3 dapat digunakan untuk menemukan alokasi memori yang luar biasa setelah driver dibongkar, atau untuk melacak alokasi saat ini saat driver sedang berjalan. Ekstensi ini juga menunjukkan tag kumpulan, ukuran kumpulan, dan alamat alokator untuk setiap alokasi. Untuk informasi tentang ekstensi debugger, lihat Debugging Windows.

Biaya Kuota Kumpulan dari Rutinitas DPC

Driver kernel dapat memanggil ExAllocatePoolWithQuotaTag untuk mengalokasikan memori kumpulan kernel dan mengisi jumlah byte yang dialokasikan untuk kuota kumpulan proses saat ini. Driver biasanya menggunakan kuota untuk alokasi memori yang terkait langsung dengan permintaan yang berasal dari aplikasi.

Rutinitas panggilan prosedur yang ditangguhkan (DPC) dapat berjalan dalam konteks proses apa pun. Oleh karena itu, pengisian kuota dari rutinitas DPC mengenakan biaya proses acak. Lebih buruk lagi, ketika rutinitas DPC berjalan dalam konteks proses Menganggur, kondisi ini dapat mengakibatkan kerusakan memori atau crash sistem.

Mulai windows 7, Driver Verifier mendeteksi panggilan ExAllocatePoolWithQuotaTag dari rutinitas DPC.

Mengaktifkan Opsi Ini

Anda dapat mengaktifkan fitur Pelacakan Kumpulan 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 Pelacakan Kumpulan diwakili oleh Bit 3 (0x8). Untuk mengaktifkan Pelacakan Kumpulan, gunakan nilai bendera 0x8 atau tambahkan 0x8 ke nilai bendera. Contohnya:

    verifier /flags 0x8 /driver MyDriver.sys
    

    Fitur ini akan aktif setelah boot berikutnya.

    Pada Windows Vista dan versi Windows yang lebih baru, Anda juga dapat mengaktifkan dan menonaktifkan Pelacakan Kumpulan tanpa me-reboot komputer dengan menambahkan parameter /volatil ke perintah. Contohnya:

    verifier /volatile /flags 0x8 /adddriver MyDriver.sys
    

    Pengaturan ini langsung efektif, tetapi hilang ketika Anda mematikan atau me-reboot komputer. Untuk detailnya, lihat Menggunakan Pengaturan Volatil.

    Fitur Pelacakan Kumpulan juga disertakan dalam pengaturan standar. Contohnya:

    verifier /standard /driver MyDriver.sys
    
  • Menggunakan Driver Verifier Manager

    1. Mulai Manajer Pemverifikasi Driver. Ketik Pemverifikasi di jendela Wantian Perintah.
    2. Pilih Buat pengaturan kustom (untuk pengembang kode) lalu klik Berikutnya.
    3. Pilih Pilih pengaturan individual dari daftar lengkap.
    4. Pilih (centang) Pelacakan kumpulan.

    Fitur Pelacakan Kumpulan juga disertakan dalam pengaturan standar. Untuk menggunakan fitur ini, di Manajer Pemverifikasi Driver, klik Buat Pengaturan Standar.