Core Audio (Windows)
Core Audio (コア オーディオ) とは、Windows上で利用できる、新しいオーディオコンポーネントである。Windows Vistaで初めて導入されたのち、Windows 7で多数の機能拡張がなされた[1]ほか、Windows 8でも非同期操作のための機能が追加されている[2]。
概要
[編集]Core Audioは、DirectSound、DirectMusic、WindowsマルチメディアAPI (waveXxx関数、mixerXxx関数) およびMedia Foundationといった高レベルAPIの基盤を提供する、COMベースの新しいオーディオAPIであり、ヘッドフォンやマイクといったオーディオデバイスにアクセスする手段を提供する。
導入されたCore Audio APIsは以下の4つのWin32 APIである[3]。
- MMDevice API: 現在[いつ?]非推奨、代替は
Windows.Devices.Enumeration
[4] - WASAPI
- DeviceTopology API: 現在[いつ?]非推奨
- EndpointVolume API: 現在[いつ?]非推奨
Core AudioはWindowsのユーザーモードのシステムコンポーネントであるAudioses.dllおよびMmdevapi.dllに実装されている[5]。
またユーザーモードを基礎とするオーディオサブシステムが追加された[6]。オーディオストリームが共有モード(shared mode)で動作する場合はWindows audio engineへのルーティングが行なわれ、全ストリームがミックスされてエンドポイントデバイスに渡される。逆に排他モード(exclusive mode)で動作する場合はaudio engineをバイパスしてアプリケーションとエンドポイントが1:1でデータ転送を行なう[7]。Audio engineの実体はユーザーモードで動作する特殊なプロセス(Audiodg.exe
)である[8][9]。
背景
[編集]Windows XPではオーディオパイプラインの大半がカーネルモードに存在していたが、WASAPIではこれをユーザーモードに移動した。これによって例えばエフェクト処理で致命的な問題が発生した場合、Windows XPではOSがブルースクリーンとなるが、Windows Vista以降ではオーディオサービス (audiosrv) やオーディオエンジン (audiodg) が異常終了するだけでOS全体には影響がないようになっている。
Windowsオーディオデバイスグラフアイソレーション
[編集]Windowsオーディオデバイスグラフアイソレーション(英: Windows Audio Device Graph Isolation)はWindowsオーディオを司るプロセスの1つである。対応するアプリケーションは audiodg.exe
。
audiodg.exe
は audio engine を構成する要素の片方であり、もう片方の要素でありエンジンの実体であるaudioeng.dll
をロードする[10]。
Windows Audio
[編集]Windows Audio はオーディオを司るWindowsサービスである[11]。実体は AudioSrv.dll
であり、専用の Svchost.exe を介して実行される[12]。audiodg.exe を介してAudioEngineを管理しており[13]、このサービスをオフにすると主要な音声機能がストップする。
脚注
[編集]- ^ What's New for Core Audio APIs in Windows 7 (Windows)
- ^ ActivateAudioInterfaceAsync function (Windows)
- ^ "The core audio APIs include the MMDevice API, WASAPI, the DeviceTopology API, and the EndpointVolume API" Windows Developer. User-Mode Audio Components.
- ^ "These APIs are not recommended for Windows applications. MMDevice API (replaced by Windows.Devices.Enumeration) DeviceTopology API EndpointVolume API" Windows Hardware Developer. Windows Audio Architecture.
- ^ Header Files and System Components (Windows)
- ^ "the core audio APIs serve as the foundation of the user-mode audio subsystem." Windows Developer. User-Mode Audio Components.
- ^ "if a client opens a stream in exclusive mode, the client has exclusive access to the audio hardware." Windows Developer. User-Mode Audio Components.
- ^ "The audio engine is a user-mode system component (Audiodg.dll)" Windows Developer. User-Mode Audio Components.
- ^ "The audio engine runs in its own protected process, which is separate from the process that the application runs in." Windows Developer. User-Mode Audio Components.
- ^ "The audio engine consists of two related components, the Audio Device Graph (audiodg.exe), which loads the Audio Engine (audioeng.dll)." Microsoft. Windows Audio Architecture. 2022-09-14閲覧.
- ^ "Windowsベースのプログラムのオーディオを管理します。" Windows 10 - サービス (アプリ).
- ^ "the 'Windows Audio' service AudioSrv.dll (AudioSrv) runs in a dedicated svchost.exe process." Microsoft. Audio measures. 2022-09-14閲覧.
- ^ " It also launches a helper 'Windows Audio Device Graph Isolation' process audiodg.exe (AudioDg)." Microsoft. Audio measures. 2022-09-14閲覧.