Udostępnij przez


Miary dźwięku

Za każdym razem, gdy aplikacja lub składnik systemu Windows chce odtwarzać lub nagrywać dźwięk, używa jednego z różnych interfejsów API audio.

Inicjowanie strumienia audio

Wszystkie interfejsy API audio ostatecznie wywołują wywołanie podstawowego interfejsu API audio IAudioClient::Initialize. Funkcja IAudioClient::Initialize tworzy połączenie między aplikacją a aparatem audio systemu Windows oraz połączeniem między aparatem audio systemu Windows a sterownikiem audio.

Jeśli wywołanie IAudioClient::Initialize nie powiedzie się, to, z pewnymi wyjątkami, aplikacja nie będzie mogła użyć dźwięku. Niektóre błędy IAudioClient::Inicjowanie są łagodne i są ignorowane; w dodatku podano listę tych błędów.

Wynik wywołania jest rejestrowany w zdarzeniu AudioClientInitialize u dostawcy Microsoft.Windows.Audio.Client . Jeśli wywołanie zakończyło się pomyślnie, pole HRESULT wynosi 0, a numer ujemny, jeśli wywołanie nie powiodło się.

Następujące miary audio śledzą powodzenie IAudioClient::Initialize :

Niezawodność trybu użytkownika audio

Sterowniki audio przesyłania strumieniowego jądra działają w trybie jądrowym. Jeśli sterownik audio napotka wyjątek, skutkuje to wyświetleniem niebieskiego ekranu śmierci (BSOD) lub zielonego ekranu śmierci (GSOD).

Nie ma żadnych miar specjalnie dla problemów z niezawodnością trybu jądra audio, ale ogólnie istnieją miary dotyczące problemów z niezawodnością trybu jądra.

Silnik audio w trybie udostępnionym systemu Windows działa w trybie użytkownika. W szczególności usługa audio systemu Windows, AudioSrv.dll (AudioSrv), działa w dedykowanym procesie svchost.exe. Uruchamia również proces pomocniczy Windows Audio Device Graph Isolation, audiodg.exe (AudioDg).

Dostawcy sprzętu audio (IHV) mogą zawierać wtyczki do silnika audio w trybie użytkownika, zwane obiektami przetwarzania dźwięku (APO).

Jeśli obiekt APO napotka wyjątek, nie ma niebieskiego ekranu śmierci, ale silnik audio Windows zawiesza się. Istnieje również zegar nadzorczy, który sprawdza, czy wywołania z aplikacji kończą się szybko. Jeśli wywołanie zostanie zablokowane, mechanizm nadzorujący to zauważa i wymusza awarię silnika audio systemu Windows.

Tak czy inaczej, cały dźwięk w systemie zostanie utracony, dopóki silnik audio nie zostanie ponownie uruchomiony.

Jeśli AudioDg ulegnie awarii i AudioSrv jest obecny, by to zauważyć, zdarzenie AudioDgCrash jest rejestrowane przez dostawcę Microsoft.Windows.Audio.Service. W niektórych starszych wersjach systemu Windows 10 zdarzenie to AudioDg-Crash.

Jeśli system AudioSrv ulega awarii, a AudioDg jest obecny, aby to zauważyć, wydarzenie AudioSrvSvchostCrash jest rejestrowane jako zdarzenie z dostawcy Microsoft.Windows.Audio.DeviceGraph. W niektórych starszych wersjach systemu Windows 10 zdarzenie to AudioSrv-Svchost-Crash.

Jeśli usługa audio zawiesza się, zdarzenie Hang jest rejestrowane z dostawcy Microsoft.Windows.Audio.Service . W niektórych starszych wersjach systemu Windows 10, dla pewnych rodzajów zawieszeń, zdarzenie typu Hang również zostanie zarejestrowane przez dostawcę Microsoft.Windows.Audio.DeviceGraph.

Następujące pomiary audio śledzą niezawodność silnika audio Windows:

Wyłączenie obiektu przetwarzania dźwięku

Ta miara śledzi automatyczne wyłączenie obiektów przetwarzania audio:

Co zrobić, jeśli etykieta wysyłkowa zostanie odrzucona

Jeśli etykieta wysyłkowa zostanie odrzucona, zobacz Odwołanie odrzuconego sterownika audio