Bagikan melalui


Menyesuaikan Pengaturan Volume Driver Audio HD

Kemampuan untuk menyesuaikan volume audio default audio HD dalam kotak dan tingkat peningkatan mikrofon agar sesuai dengan PC tertentu, memberi OEM fleksibilitas dalam parameter penginstalan adaptor audio mereka.

Catatan

Proses yang dijelaskan di sini hanya dapat digunakan jika driver Microsoft HD Audio default sedang digunakan.

Secara default, driver fungsi kelas Hd Audio mengatur volume audio dan tingkat peningkatan mikrofon pada nilai yang telah ditentukan untuk memastikan pengalaman "out of the box" yang menyenangkan bagi pengguna.

Driver fungsi kelas HD Audio, yang disebut di sini sebagai driver Kelas Audio, menggunakan berbagai nilai default yang dikodekan secara permanen yang tidak dapat disesuaikan untuk PC tertentu. Dengan demikian, OEM tidak dapat mengambil alih nilai-nilai ini untuk memenuhi persyaratan mereka sendiri. Dan salah satu pengaturan terpenting untuk disesuaikan adalah tingkat volume, karena pengguna sensitif terhadap kenyaringan atau ketenangan sistem audio mereka, terutama selama penggunaan pertama kali.

Driver Kelas Audio telah dirancang ulang untuk memungkinkan Anda mengambil alih nilai default yang dikodekan secara permanen. Mekanisme untuk mengambil alih nilai hard-code driver Kelas Audio melibatkan penulisan file INF yang membungkus file INF kotak masuk driver Kelas Audio (hdaudio.inf), dan menggunakan INF pembungkus ini untuk menentukan nilai yang diinginkan.

Diagram berikut menunjukkan contoh topologi codec HD Audio. Ada ID untuk node individu, dan ID untuk kompleks pin. Diagram topologi codec audio sampel dengan kompleks pin yang mewakili konektor fisik, termasuk simpul input mikrofon dan baris, dan simpul output speaker dengan PIN ID kompleks.

Kompleks pin mewakili konektor fisik untuk perangkat terkait (misalnya, speaker, mikrofon, atau garis).

Untuk menentukan tingkat volume audio kustom atau tingkat peningkatan mikrofon, gunakan file INF pembungkus untuk menentukan tingkat kustom per ID kompleks pin. Tingkat dinyatakan sebagai DWORD yang mewakili tingkat desibel streaming kernel (KS) default yang harus dikembalikan oleh driver kelas.

Ketika driver kelas HD Audio menerima permintaan GET untuk KSPROPERTY_AUDIO_VOLUMELEVEL, driver menentukan apakah ada nilai volume default (atau peningkatan Mikrofon) dalam registri untuk jalur yang berisi simpul yang menerima permintaan atau tidak. Jika ada nilai dalam registri, tetapi tidak ada nilai yang di-cache sebelumnya, nilai default dalam registri akan diterapkan ke perangkat, dan juga dikembalikan dalam respons KSPROPERTY_AUDIO_VOLUMELEVEL. Jika tidak ada nilai dalam registri, driver kelas HD Audio mengambil nilai default dari implementasi grafik sub-perangkat.

Dimulai dengan Windows Vista, nilai defaultnya adalah sebagai berikut:

  • Volume titik akhir default ke maks minus 6 dB untuk semua jenis perangkat.

  • Mikrofon meningkatkan default ke 0 dB.

Langkah-langkah berikut meringkas algoritma yang digunakan oleh driver Kelas Audio untuk menentukan nilai default yang akan dikembalikan sebagai respons terhadap permintaan GET untuk KSPROPERTY_AUDIO_VOLUMELEVEL:

  1. Tentukan kompleks pin tempat jalur yang berisi node volume yang dikueri berakhir.

  2. Lakukan pencarian registri untuk melihat apakah nilai default peningkatan volume atau mikrofon telah disediakan untuk kompleks pin yang ditemukan di langkah 1.

  3. Jika nilai ditemukan di registri, maka driver menetapkan nilai tersebut ke minimum, jika berada di bawah nilai minimum yang didukung oleh amplifier. Jika tidak, nilai diatur ke maksimum, jika berada di atas nilai maksimum yang didukung oleh amplifier. Jika nilai yang ditemukan dalam registri berada dalam rentang yang didukung oleh amplifier, maka nilai dikembalikan sebagai respons terhadap permintaan GET. Selain itu, driver memprogram widget amplifier HD Audio terkait dengan nilai ini saat merender ke atau menangkap dari kompleks pin.

Pohon folder berikut menunjukkan tata letak untuk kunci instans driver yang menyimpan nilai default.

<Driver Key> DefaultVolumeLevels Pin Complex (2 digit HEX, tidak didahului oleh Volume "0x") (DWORD dalam langkah KS DB) Boost (DWORD dalam langkah KS DB)

Nilai langkah KS DB didefinisikan sebagai berikut: -2147483648 adalah -desibel tak terbatas (redaman)

-2147483647 adalah desibel -32767.99998474 (redaman)

+2147483647 adalah +32767.99998474 desibel (perolehan)

Untuk informasi selengkapnya tentang satuan pengukuran yang digunakan (1/65536 dB), lihat KSPROPERTY_AUDIO_VOLUMELEVEL.

Untuk mengambil alih file wdmudio.inf, gunakan direktif Sertakan dan Perlu seperti yang ditunjukkan dalam segmen kode ini dari Sampel Driver Perangkat Audio Virtual Microsoft yang tersedia sebagai bagian dari Sampel Windows Driver Kit (WDK) 8.1.

;Copyright (c) Microsoft Corporation. All rights reserved.
;
...
[MSVAD_Simple.NT]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
...

Untuk informasi selengkapnya tentang arahan Sertakan dan Kebutuhan, lihat Bagian Instalasi INF DD.

Berikut ini adalah sampel pembungkus INF yang membungkus file INF untuk driver Kelas Audio.

;Copyright (c) Microsoft Corporation. All rights reserved.
;
;Module Name:
;    HDAUDVOL.INF
;
;Abstract:
;    Wrapper INF file for installing the Microsoft UAA Function Driver for High
;    Definition Audio with specific INF overrides

[Version]
Signature="$Windows NT$"
Class=MEDIA
ClassGuid={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=Microsoft
DriverVer=07/28/2012,6.2.9201.0
CatalogFile=hdaudvol.cat
PnpLockdown=1

[Manufacturer]
Microsoft = Microsoft,ntamd64,ntarm

[ControlFlags]
ExcludeFromSelect = *

;;====================================================================================
;; Edit the PNP ID (HDAUDIO\FUNC_01...) below to match the codec + subsystem you are ;; configuring.
;;====================================================================================

[Microsoft]
%HdAudModel_DefaultVolume_DeviceDesc% = HdAudModel_DefaultVolume, HDAUDIO\FUNC_01&VEN_10EC&DEV_0889&SUBSYS_00000000&REV_1000

[Microsoft.ntamd64]
%HdAudModel_DefaultVolume_DeviceDesc% = HdAudModel_DefaultVolume, HDAUDIO\FUNC_01&VEN_10EC&DEV_0889&SUBSYS_00000000&REV_1000

[Microsoft.ntarm]
%HdAudModel_DefaultVolume_DeviceDesc% = HdAudModel_DefaultVolume, HDAUDIO\FUNC_01&VEN_10EC&DEV_0889&SUBSYS_00000000&REV_1000

;;===================== HdAudModel_DefaultVolume ==============================

[HdAudModel_DefaultVolume]
Include=hdaudio.inf
Needs=HDAudModel
AddReg=HdAudModel_DefaultVolume.HdAudInit

[HdAudModel_DefaultVolume.HW]
Include=hdaudio.inf
Needs=HdAudModel.HW

[HdAudModel_DefaultVolume.Services]
Include=hdaudio.inf
Needs=HdAudModel.Services

[HdAudModel_DefaultVolume.Interfaces]
Include=hdaudio.inf
Needs=HdAudModel.Interfaces

[HdAudModel_DefaultVolume.HdAudInit]
;;====================================================================================
;; Units are in KS dB so 1dB == 65536 (0x00010000)
;; ======================================================================================
HKR,DefaultVolumeLevels\18,Volume,1,00,00,FE,FF ; Set to 0xFFFE0000 to set to -2dB
HKR,DefaultVolumeLevels\18,Boost,1,00,00,0A,00 ; Set to 0x000A0000 to set to 10dB

[Strings]
HdAudModel_DefaultVolume_DeviceDesc = "High Definition Audio Device"

Karena jalur relatif HKR ditentukan, jalur registri driver yang tepat akan ditentukan berdasarkan bagian file INF tertentu yang digunakan. Untuk informasi selengkapnya tentang jalur relatif HKR, lihat Direktif AddReg INF (Driver Windows).

Pengaturan Volume Audio Default

KSPROPERTY_AUDIO_VOLUMELEVEL