Bagikan melalui


Menentukan Mengapa Driver UMDF Mengonsumsi Memori Dalam Jumlah Berlebihan

Peringatan

UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2.

Sampel UMDF 1 yang diarsipkan dapat ditemukan di Windows 11, versi 22H2 - Pembaruan Sampel Driver Mei 2022.

Untuk informasi selengkapnya, lihat Memulai UMDF.

Topik ini menjelaskan bagaimana Anda dapat menggunakan ekstensi debugger Wudfext.dll bersama dengan driver User-Mode Driver Framework (UMDF) versi 1 untuk menentukan mengapa driver UMDF mengonsumsi memori yang berlebihan.

Dimulai dengan UMDF versi 2, Anda harus menggunakan ekstensi debugger Wdfkd.dll. Untuk informasi selengkapnya, lihat Ekstensi Kerangka Kerja Driver Windows (Wdfkd.dll).

Untuk menyelidiki penggunaan memori, gunakan langkah-langkah berikut:

  1. Lihat objek yang luar biasa di pohon objek dengan menggunakan ekstensi debugger UMDF !wudfext.wudfobject .

    Ekstensi !wudfext.wudfobject menampilkan informasi tentang objek WDF, yang mencakup hubungan induk dan anaknya. Jika Anda mengatur bit 0 dari parameter Bendera ke 1 (0x01), !wudfext.wudfobject melakukan pembuangan rekursif pohon objek yang berakar pada objek yang Anda lewati. Untuk melihat pohon objek lengkap, gunakan contoh perintah berikut:

    !wudfext.wudfobject <IWDFDriver*> 1

  2. Tentukan apakah Anda melihat objek yang lebih luar biasa dari yang Anda harapkan.

    Driver Anda mungkin akhirnya membocorkan objek ini (untuk informasi selengkapnya tentang membocorkan objek WDF, lihat Menentukan Apakah Driver Bocor Objek Kerangka Kerja).

    Objek-objek ini mungkin berada di pohon objek dan karenanya pada akhirnya akan dikosongkan. Namun, mereka sedang terakumulasi tidak perlu. Objek ini mungkin memerlukan: