Bagikan melalui


Menerapkan IAdapterPowerManagement

Saat menerapkan antarmuka IAdapterPowerManagement untuk driver Anda, lihat implementasi kelas CAdapterCommon dalam driver audio sampel di Microsoft Windows Driver Kit (WDK). Kelas ini menangani gangguan perangkat dan melakukan fungsi lain yang umum untuk semua driver adaptor audio. Kelas CAdapterCommon adapter Anda harus mewarisi dari antarmuka IAdapterPowerManagement dan mendukung antarmuka ini dalam metode NonDelegatingQueryInterface . (Untuk detail tentang antarmuka yang tidak mendelegasi, lihat deskripsi antarmuka INonDelegatingUnknown .)

Anda dapat menggunakan definisi IMP_IAdapterPowerManagement dari file header Portcls.h untuk menambahkan deklarasi fungsi untuk metode IAdapterPowerManagement::P owerChangeState, IAdapterPowerManagement::QueryPowerChangeState, dan IAdapterPowerManagement::QueryDeviceCapabilities ke definisi kelas CAdapterCommon driver Anda.

Selama panggilan driver sistem PortCls ke rutinitas perangkat-startup adaptor (lihat Memulai Perangkat), adaptor harus mendaftarkan antarmuka IAdapterPowerManagement dengan PortCls dengan memanggil PcRegisterAdapterPowerManagement. Untuk contoh kode, lihat fungsi StartDevice di driver sampel Sysvad, yang dibahas dalam Driver Audio Sampel. Parameter pertama fungsi PcRegisterAdapterPowerManagement adalah pointer IUnknown ke objek CAdapterCommon driver adapter. PortCls mengkueri objek ini untuk antarmuka IAdapterPowerManagement-nya .

Ketika PortCls memanggil metode IAdapterPowerManagement::P owerChangeState driver adapter untuk mengubah status daya perangkat, driver adaptor harus menyimpan status daya baru perangkat di objek CAdapterCommon adapter. Selama panggilan CAdapterCommon::Init (lihat implementasi dalam contoh driver adaptor WDK), driver harus mengatur status daya awal ke PowerDeviceD0 (dijelaskan dalam DeviceState) sebelum kembali dari inisialisasi yang berhasil. Driver harus menulis ke perangkat keras hanya jika diketahui berada dalam status daya yang sesuai.

Sebelum mematikan sebagai respons terhadap panggilan PowerChangeState , driver adaptor harus menempatkan output audio dalam keadaan yang mencegah terjadinya kebisingan speaker saat daya mati. Misalnya, proses pematian mungkin termasuk meningkatkan output DAC menjadi nol, mematikan DAC, dan membisukan baris MIDI.