Bagikan melalui


Membuat Kode yang Dapat Di-Pageable di Driver KMDF

Kode yang dapat dipakai adalah kode yang dapat ditulis ke file halaman komputer ketika kode tidak digunakan. Anda dapat membuat bagian dari driver Anda dapat di-pageable untuk mengurangi gambar beban dan waktu muat awalnya, dan untuk mengurangi jumlah kode driver Anda yang menggunakan kumpulan memori terbatas komputer.

Untuk membantu Anda menentukan apakah kode atau data yang dapat di-pageable sesuai untuk driver Anda, lakukan hal berikut:

  1. Identifikasi bagian yang dapat di-pageable di driver Anda.

    Bagian yang dapat di-pageable tidak dimuat ke dalam memori hingga diperlukan. Untuk informasi tentang cara membuat bagian yang dapat di-pageable di driver, lihat Membuat Driver Dapat Di-Pageable.

  2. Pastikan bahwa kode driver halaman tidak menghambat kemampuan komputer untuk dengan cepat terbangun dari status daya rendah.

    Semua fungsi panggilan balik objek perangkat yang disediakan driver dipanggil di IRQL = PASSIVE_LEVEL, yang memungkinkan Anda membuat kodenya dapat di-pageable (seperti yang dijelaskan dalam Membuat Driver Dapat Di-Pageable).

    Namun, Anda tidak boleh membuat kode fungsi panggilan balik dapat dipaginasi jika kerangka kerja memanggil fungsi panggilan balik ketika perangkat meninggalkan status daya rendah dan kembali ke status kerjanya (D0).

    Jika kode tersebut dapat di-pageable, kode mungkin ditulis ke file halaman sebelum komputer memasuki status tidur. Oleh karena itu, komputer akan lebih lambat untuk terbangun karena kode Anda tidak dapat dimuat ulang (dan oleh karena itu perangkat Anda tidak dapat beroperasi penuh) sampai daya disk halaman dipulihkan.

    Oleh karena itu, fungsi panggilan balik yang tercantum dalam topik A Device Returns to Its Working State tidak boleh dapat di-pageable.

  3. Tentukan apakah driver Anda memerlukan akses ke data yang dapat di-pageable di luar driver, seperti file, registri, atau kumpulan halaman, selama transisi daya.

    Untuk informasi tentang cara mengaktifkan dan menonaktifkan kemampuan driver untuk mengakses data yang dapat di-pageable selama transisi daya, lihat WdfDeviceInitSetPowerPageable dan WdfDeviceInitSetPowerNotPageable.

    Untuk informasi tentang cara menentukan kapan driver Anda berada dalam status tidak dapat dimanfaatkan, lihat WdfDevStateIsNP.