Bagikan melalui


Subdevice Audio Dinamis

Beberapa adaptor audio dapat mengubah topologi internal mereka secara dinamis pada durasi. Dengan menggunakan kemampuan yang disediakan sistem di driver sistem PortCls (Portcls.sys), driver adaptor dapat memberikan dukungan perangkat lunak untuk perangkat keras audio yang dapat dikonfigurasi secara dinamis.

Misalnya, Spesifikasi Audio Definisi Tinggi Intel menggunakan istilah codec audio untuk merujuk ke adaptor audio terintegrasi yang terhubung ke pengontrol Audio Definisi Tinggi (HD Audio) melalui antarmuka HD Audio Link. Codec audio khas mendukung deteksi jack-presence: ketika steker dimasukkan ke dalam atau dihapus dari jack, perangkat keras menghasilkan interupsi untuk memberi tahu driver tentang perubahan konfigurasi perangkat keras. Misalnya, driver merespons penyisipan steker ke jack headphone dengan membuat filter KS untuk mewakili subdevice audio untuk headphone. Driver menetapkan sumber daya perangkat keras ke filter (misalnya, headphone mungkin memerlukan kontrol volume dan pengonversi digital-ke-analog, atau DAC) dan mendaftarkan filter sebagai perangkat audio. Ketika pengguna mencabut headphone, driver merespons dengan membebaskan sumber daya, menghapus filter, dan menghapusnya dari registri.

Perilaku ini memastikan bahwa ketika aplikasi audio memeriksa untuk melihat perangkat audio mana yang terdaftar, ia hanya menemukan perangkat yang saat ini dicolokkan. Jika perangkat dicabut, perangkat tidak muncul di registri.

Di Windows Vista, Windows Server 2003 dengan Paket Layanan 1 (SP1), dan Windows XP dengan Paket Layanan 2 (SP2), PortCls mendukung antarmuka IUnregisterSubdevice dan IUnregisterPhysicalConnection . Driver adaptor audio menggunakan kedua antarmuka ini untuk menghapus subdevice audio yang tidak lagi digunakan. Versi Windows yang lebih lama, termasuk Windows Server 2003 dan Windows XP, tidak mendukung antarmuka ini. Dalam versi Windows sebelumnya ini, subdevice dapat dibuat tetapi tidak dihapus--setelah subdevice dibuat, itu ada untuk masa pakai objek driver adapter.

Antarmuka IUnregisterSubdevice berisi satu metode yang dapat digunakan driver adapter untuk "membatalkan pendaftaran" subdevice yang didaftarkan driver melalui panggilan sebelumnya ke rutinitas PcRegisterSubdevice :

IUnregisterSubdevice::UnregisterSubdevice

Antarmuka IUnregisterPhysicalConnection berisi tiga metode yang dapat digunakan driver adapter untuk membatalkan pendaftaran koneksi fisik di antara subdevisi:

IUnregisterPhysicalConnection::UnregisterPhysicalConnection

IUnregisterPhysicalConnection::UnregisterPhysicalConnectionFromExternal

IUnregisterPhysicalConnection::UnregisterPhysicalConnectionToExternal

Metode ini menghapus koneksi yang didaftarkan driver melalui panggilan sebelumnya ke rutinitas PcRegisterPhysicalConnection, PcRegisterPhysicalConnectionFromExternal, dan PcRegisterPhysicalConnectionToExternal . PortCls menyimpan informasi dari panggilan PcRegisterPhysicalConnectionXxx sehingga driver port kemudian dapat menggunakan informasi untuk menanggapi permintaan properti KSPROPERTY_PIN_PHYSICALCONNECTION . Saat menghapus subdevice dari topologi adaptor, driver harus membatalkan pendaftaran koneksi fisik subdevice ke bagian topologi tersebut. Kegagalan untuk membatalkan pendaftaran koneksi fisik subdevice dapat menyebabkan kebocoran memori. PortCls mendukung rutinitas PcRegisterXxx di Windows 2000 dan yang lebih baru.

Topik berikut di bagian ini menjelaskan cara menerapkan dukungan driver untuk adaptor dengan topologi dinamis:

Mengelola Topologi Dinamis

Dukungan Driver untuk Sub-Layanan Dinamis

Deskripsi Jack untuk Subdevice Audio Dinamis