Gambaran umum ekstensi kelas audio ACX
Topik ini memberikan ringkasan tingkat tinggi dari Ekstensi Kelas Audio ACX.
Kerangka kerja ACX dibangun di atas Windows Driver Framework
Untuk memungkinkan driver audio lebih andal dan menawarkan pengalaman terbaik bagi pengguna PC, Audio Class eXtension (ACX) sekarang tersedia di pratinjau awal. ACX mendefinisikan ekstensi kelas Windows Driver Framework (WDF) baru untuk domain audio. Untuk informasi selengkapnya tentang WDF lihat Pengenalan Objek Kerangka Kerja. Banyak konsep WDF seperti target IO WDF, tersedia di ACX. Untuk informasi selengkapnya tentang target IO WDF, lihat Pengantar Target I/O.
ACX dibangun menggunakan Kerangka Kerja Driver Mode Kernel (KMDF) dan bukan Kerangka Kerja Driver Mode Pengguna (UMDF) untuk menghindari latensi yang terkait dengan pengalihan tugas beberapa kali dari mode Pengguna ke Kernel saat streaming. Driver audio portcls, model warisan saat ini, adalah WDM, driver berbasis mode kernel.
Penggunaan kerangka kerja ACX memudahkan untuk membuat driver audio yang berfungsi 'out of the box'. Misalnya, ACX mendukung penyelesaian default untuk sebagian besar pengaturannya. Ini memudahkan driver untuk menggunakan pengaturan yang benar, namun masih memungkinkan penyesuaian.
Kerangka kerja ACX memaparkan konsep audio sebagai objek WDF yang dapat berinteraksi dengan driver (streaming, format, dll.). Ini memungkinkan pengalaman pemrograman yang konsisten dan memungkinkan komunitas pengembang driver audio yang lebih besar.
Catatan
Header dan pustaka ACX tidak disertakan dalam WDK 10.0.22621.2428 (dirilis 24 Oktober 2023), tetapi tersedia dalam versi sebelumnya, serta terbaru (build seri 25000) Pratinjau Insider WDK. Untuk informasi selengkapnya tentang versi pratinjau WDK, lihat Menginstal versi pratinjau Windows Driver Kit (WDK).
Tujuan ACX
Ekstensi kelas audio (ACX) memiliki tujuan berikut.
- Menyederhanakan upaya dan pengetahuan yang diperlukan untuk mengembangkan driver audio mandiri sederhana.
- Kurangi jumlah kode yang perlu dikembangkan pihak ke-3. Lebih sedikit baris kode yang mengurangi pemeliharaan dan mempermudah penelusuran kesalahan.
- Memungkinkan klien mode pengguna atas yang ada (layanan dan aplikasi) untuk berjalan apa adanya.
- Menyederhanakan manajemen power-pnp dari driver tumpukan audio.
- Tidak berdampak pada performa keseluruhan, yaitu, tidak ada latensi tambahan/nyata.
- Menyederhanakan upaya yang diperlukan untuk mengembangkan driver audio multi-stack.
- Izinkan driver pihak ke-3 untuk menentukan mekanisme penguncian yang akan digunakan saat streaming.
- Menggunakan solusi isolasi penyebaran komponen Microsoft yang membuat modul driver/API mandiri dan dapat digunakan kembali.
Arsitektur ACX
Diagram ini menggambarkan arsitektur ACX yang menunjukkan aplikasi mode pengguna dan objek ACX yang ada dalam mode kernel dan perangkat keras audio di bagian bawah tumpukan. Selain objek ACX, pengembang driver memiliki akses ke objek WDF untuk memanfaatkan dalam kode driver mereka, misalnya untuk manajemen daya.
Koeksistensi ACX dengan driver audio yang ada
ACX dirancang untuk berdampingan dengan driver audio yang ada, untuk memungkinkan migrasi fleksibel ke driver ACX baru.
- Kompatibilitas biner dari driver miniport audio keluar, tidak berubah (berbasis WDM) dipertahankan oleh driver kelas Windows warisan yang ada.
- Hanya streaming berbasis WaveRT yang saat ini didukung oleh ACX.
- PortCls/K warisan dan tumpukan ACX baru berjalan berdampingan. Menggunakan ACX tidak memaksa pihak ke-3 untuk memindahkan driver audio mereka saat ini ke model baru. Karena model ini menawarkan banyak keuntungan, pihak ke-3 dapat secara sukarela memilih untuk menggunakannya untuk pengembangan audio mereka di masa depan.
Definisi umum ACX
Sirkuit - Komponen driver yang mewakili jalur audio parsial atau penuh. Sirkuit mewakili titik akhir yang ada dan kemampuannya.
Stream - Komponen driver yang dibuat untuk mewakili aliran audio, yang dibuat oleh Sirkuit. Stream terdiri dari daftar Elemen yang dibuat berdasarkan Elemen Sirkuit induk.
Sirkuit Stream - sirkuit dalam arsitektur multi-stack (jalur audio parsial) yang langsung berinteraksi dengan layanan streaming mode pengguna atas.
Sirkuit Inti - Sirkuit dalam arsitektur multi-stack (jalur audio parsial) yang memberikan identitas perangkat titik akhir audio.
Elemen - Subkomponen Sirkuit atau Stream, mewakili kemampuan audio perangkat keras garis bawah. Ini bisa berupa elemen Volume, atau Bisukan, atau Jack, atau elemen Modul pada sirkuit DSP, dll.
Jalur Audio Titik Akhir - Satu atau sekelompok objek Sirkuit yang tersambung bersama untuk mewakili satu titik akhir audio. Objek Sirkuit harus berasal dari tumpukan perangkat yang berbeda milik driver yang sama atau berbeda.
Ringkasan objek ACX
Untuk ringkasan objek ACX dasar, lihat Ringkasan objek ACX.
Contoh driver ACX
Driver sampel ACX sederhana tersedia untuk dilihat dan diunduh di GitHub di cabang pengembangan - https://github.com/microsoft/Windows-driver-samples/tree/develop/audio/Acx/Samples.
Pemverifikasi Driver
Penggunaan pemverifikasi driver didorong untuk semua driver Windows, termasuk driver ACX. Gunakan pemverifikasi driver untuk menampilkan kesalahan laten, mengurangi konsumsi daya, dan meningkatkan keandalan driver Anda. Untuk informasi selengkapnya, lihat Pemverifikasi Driver.
Komunikasi silang standar driver multi-tumpukan ACX
Jalur audio biasanya melalui beberapa komponen perangkat keras yang ditangani oleh tumpukan driver yang berbeda untuk menciptakan pengalaman audio yang lengkap. Sistem biasanya memiliki fungsionalitas DSP, CODEC, dan AMP yang diimplementasikan oleh vendor teknologi audio yang berbeda.
Dalam arsitektur multi-stack tanpa standar yang terdefinisi dengan baik, setiap vendor dipaksa untuk menentukan antarmuka kepemilikan dan protokol komunikasinya sendiri. Ini adalah tujuan ACX untuk memfasilitasi pengembangan driver audio multi-stack dengan mengambil kepemilikan sinkronisasi antara tumpukan-tumpukan ini dan memberikan pola sederhana yang dapat digunakan kembali untuk driver berkomunikasi satu sama lain.
Untuk informasi selengkapnya, lihat Komunikasi lintas driver multi tumpukan ACX.
Dokumentasi referensi ACX
Untuk informasi tentang dokumentasi referensi ACX tingkat header, lihat dokumentasi referensi ACX.
Lihat juga
Pengelogan dan penelusuran kesalahan ACX
Target ACX dan sinkronisasi driver
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk