Mendukung PnP dan Manajemen Daya dalam Driver Fungsi
Driver fungsi mengontrol pengoperasian perangkat dan oleh karena itu mereka mengakses perangkat keras perangkat. Driver ini harus mendukung PnP dan operasi manajemen daya dan biasanya mendaftarkan beberapa fungsi panggilan balik peristiwa ketika mereka membuat objek perangkat.
Biasanya, fungsi panggilan balik peristiwa EvtDriverDeviceAdd driver fungsi memanggil WdfDeviceInitSetPnpowerEventCallbacks untuk mendaftarkan fungsi panggilan balik berikut:
EvtDevicePrepareHardware, yang mengirimkan sumber daya yang ditetapkan sistem perangkat ke driver. Driver dapat melakukan operasi, seperti memetakan memori relatif bus perangkat ke ruang alamat virtual prosesor, yang membuat perangkat keras dapat diakses oleh driver.
EvtDeviceD0Entry, yang melakukan operasi, seperti memuat firmware, yang diperlukan setiap kali perangkat driver memasuki status berfungsi (D0).
EvtDeviceD0Exit, yang melakukan operasi yang diperlukan setiap kali perangkat driver meninggalkan status kerjanya (D0) dan memasuki status daya rendah.
EvtDeviceReleaseHardware, yang merilis sumber daya sistem apa pun yang dialokasikan EvtDevicePrepareHardware .
Seperti semua fungsi panggilan balik yang ditentukan kerangka kerja, fungsi dalam daftar sebelumnya bersifat opsional. Anda harus menyediakannya hanya jika driver Anda membutuhkannya.
Driver fungsi dapat memanggil WdfDeviceSetPnpCapabilities dan WdfDeviceSetPowerCapabilities untuk melaporkan kemampuan PnP dan manajemen daya perangkat ke sistem operasi.
Biasanya, Anda akan menggunakan antrean I/O yang dikelola daya kerangka kerja untuk sebagian besar permintaan I/O. Jika antrean I/O dikelola daya, kerangka kerja mengirimkan permintaan ke driver hanya jika perangkatnya dalam status berfungsi (D0). Untuk informasi selengkapnya tentang antrean I/O yang dikelola daya, lihat Power Management untuk Antrean I/O.
Biasanya, driver fungsi perangkat adalah pemilik kebijakan daya untuk tumpukan driver. Pemilik kebijakan daya menentukan status daya perangkat yang sesuai untuk perangkat dan mengirim permintaan ke tumpukan driver perangkat setiap kali status daya perangkat harus berubah. Untuk driver berbasis kerangka kerja, kerangka kerja menangani tanggung jawab ini, sehingga Anda tidak perlu memberikan kode di driver Anda untuk meminta perubahan dalam status daya perangkat.
Pemilik kebijakan daya memiliki dua tanggung jawab tambahan: ia mengontrol kemampuan perangkat untuk memasuki status daya rendah ketika diam dan sistem tetap dalam status kerjanya (S0), dan mengontrol kemampuan perangkat untuk menghasilkan sinyal bangun ketika mendeteksi peristiwa eksternal dari status daya rendah. Jika perangkat Anda memiliki kemampuan menganggur atau bangun, driver fungsi Anda dapat menyediakan fungsi panggilan balik tambahan. Untuk informasi selengkapnya tentang tanggung jawab pemilik kebijakan daya, lihat Kepemilikan Kebijakan Daya.