Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możliwość dostosowania domyślnej głośności dźwięku HD oraz poziomu wzmocnienia mikrofonu, aby pasowały do określonego komputera, zapewnia producentom OEM pewną elastyczność w parametrach instalacji adaptera audio.
Uwaga
Opisany tutaj proces może być używany tylko wtedy, gdy jest używany domyślny sterownik audio Microsoft HD.
Domyślnie sterownik funkcji klasy HD Audio ustawia głośność dźwięku i poziom podbicia mikrofonu na wstępnie określonych wartościach, aby zapewnić użytkownikowi przyjemne doświadczenie od razu po rozpakowaniu.
Sterownik funkcji klasy hd audio, który jest określany tutaj jako sterownik klasy audio, używa różnych zakodowanych wartości domyślnych, których nie można dostosować dla żadnego konkretnego komputera. W związku z tym producenci OEM nie mogą zastąpić tych wartości, aby spełnić własne wymagania. Jednym z najważniejszych ustawień do dostosowania jest poziom głośności, ponieważ użytkownicy są wrażliwi na głośność lub cichość swoich systemów audio, zwłaszcza podczas pierwszego użycia.
Sterownik klasy audio został przeprojektowany, aby umożliwić zastąpienie trwale zakodowanych wartości domyślnych. Mechanizm zastępowania trwale zakodowanych wartości sterownika klasy audio obejmuje napisanie pliku INF, który otacza wbudowany plik INF sterownika klasy audio (hdaudio.inf), przy użyciu tego opakowania INF, aby określić żądane wartości.
Na poniższym diagramie przedstawiono przykładową topologię koderów audio HD. Istnieją identyfikatory poszczególnych węzłów i identyfikatory dla złożonych numerów PIN.
Kompleksy wyprowadzeń reprezentują fizyczne łączniki dla skojarzonego urządzenia (na przykład głośnika, mikrofonu lub linii).
Aby określić niestandardowy poziom głośności dźwięku lub poziom zwiększenia mikrofonu, użyj pliku INF wrappera, aby określić niestandardowe poziomy na identyfikator kompleksu PIN. Poziomy są wyrażone jako DWORDy, które reprezentują domyślne poziomy decybeli podczas przesyłania strumieniowego jądra (KS), które sterownik klasy powinien zwracać.
Gdy sterownik klasy HD Audio odbiera żądanie GET dla KSPROPERTY_AUDIO_VOLUMELEVEL, sterownik określa, czy w rejestrze znajduje się wartość woluminu domyślnego (lub zwiększenie mikrofonu) dla ścieżki zawierającej węzeł, który odebrał żądanie. Jeśli w rejestrze znajduje się wartość, ale nie ma wcześniej buforowanej wartości, wartość domyślna w rejestrze zostanie zastosowana do urządzenia, a także zwrócona w odpowiedzi KSPROPERTY_AUDIO_VOLUMELEVEL. Jeśli w rejestrze nie ma wartości, sterownik klasy HD Audio pobiera wartość domyślną z implementacji grafu podrzędnego urządzenia.
Począwszy od systemu Windows Vista, wartości domyślne są następujące:
Wolumin punktu końcowego domyślnie ma wartość maksymalną minus 6 dB dla wszystkich typów urządzeń.
Domyślny poziom podbicia mikrofonu wynosi 0 dB.
Poniższe kroki zawierają podsumowanie algorytmu używanego przez sterownik klasy audio w celu określenia wartości domyślnych, które mają być zwracane w odpowiedzi na żądanie GET dla KSPROPERTY_AUDIO_VOLUMELEVEL:
Ustal kompleks pinów, w którym kończy się ścieżka zawierająca zapytany węzeł woluminu.
Wykonaj wyszukiwanie rejestru, aby sprawdzić, czy w kroku 1 podano wartość domyślną zwiększenia głośności lub mikrofonu.
Jeśli wartość zostanie znaleziona w rejestrze, sterownik ustawia tę wartość na wartość minimalną, jeśli spadnie poniżej wartości minimalnej obsługiwanej przez wzmacniacz. W przeciwnym razie wartość jest ustawiana na maksymalną, jeśli przekracza maksymalną wartość obsługiwaną przez wzmacniacz. Jeśli wartość znaleziona w rejestrze znajduje się w zakresie obsługiwanym przez wzmacniacz, wartość jest zwracana w odpowiedzi na żądanie GET. Ponadto sterownik programuje powiązany widżet wzmacniacza HD Audio z tą wartością podczas renderowania lub przechwytywania z zespołu pinów.
W poniższym drzewie folderów przedstawiono układ klucza wystąpienia sterownika, który zawiera wartości domyślne.
<Driver Key> DefaultVolumeLevels Pin Complex (2 cyfry HEX, nie poprzedzone "0x") Głośność (DWORD w krokach KS DB) Boost (DWORD w krokach KS DB)
Wartości krokowe dla KS DB są definiowane w następujący sposób: -2147483648 to -infinity decybeli (tłumienie)
-2147483647 to -32767.99998474 decybels (tłumienie)
+2147483647 wynosi +32767,99998474 decybeli (wzmocnienie)
Aby uzyskać więcej informacji na temat jednostki miary używanej (1/65536 dB), zobacz KSPROPERTY_AUDIO_VOLUMELEVEL.
Aby zastąpić plik wdmudio.inf, użyj dyrektyw Include and Needs, jak pokazano w tym segmencie kodu z przykładowego sterownika wirtualnego urządzenia audio firmy Microsoft dostępnego w ramach zestawu Windows Driver Kit (WDK) 8.1 Przykłady.
;Copyright (c) Microsoft Corporation. All rights reserved.
;
...
[MSVAD_Simple.NT]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
...
Aby uzyskać więcej informacji na temat dyrektyw Include and Needs, zobacz sekcję INF DDInstall.
Poniżej przedstawiono przykładowe opakowanie INF, które opakowuje plik INF dla sterownika klasy 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"
Ponieważ określono ścieżkę względną HKR, dokładna ścieżka rejestru sterownika zostanie ustalona na podstawie określonej sekcji pliku INF, która jest używana. Aby uzyskać więcej informacji na temat ścieżek względnych HKR, zobacz INF AddReg Directive (Sterowniki systemu Windows).