Core Audio (Windows)
Core Audio (コア オーディオ) とは、Windows上で利用できる、新しいオーディオコンポーネントである。Windows Vistaで初めて導入されたのち、Windows 7で多数の機能拡張がなされたほか、Windows 8でも非同期操作のための機能が追加されている。
概要
Core Audioは、DirectSound、DirectMusic、WindowsマルチメディアAPI (waveXxx関数、mixerXxx関数) およびMedia Foundationといった高レベルAPIの基盤を提供する、COMベースの新しいオーディオAPIであり、ヘッドフォンやマイクといったオーディオデバイスにアクセスする手段を提供する。
導入されたCore Audio APIsは以下の4つのWin32 APIである。
- MMDevice API:現在[いつ?]非推奨、代替は
Windows.Devices.Enumeration
- WASAPI
- DeviceTopology API:現在[いつ?]非推奨
- EndpointVolume API:現在[いつ?]非推奨
Core AudioはWindowsのユーザーモードのシステムコンポーネントであるAudioses.dllおよびMmdevapi.dllに実装されている。
またユーザーモードを基礎とするオーディオサブシステムが追加された。オーディオストリームが共有モード(shared mode)で動作する場合はWindows audio engineへのルーティングが行なわれ、全ストリームがミックスされてエンドポイントデバイスに渡される。逆に排他モード(exclusive mode)で動作する場合はaudio engineをバイパスしてアプリケーションとエンドポイントが1:1でデータ転送を行なう。Audio engineの実体はユーザーモードで動作する特殊なプロセス(Audiodg.exe
)である。
背景
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
をロードする。
Windows Audio
Windows Audio はオーディオを司るWindowsサービスである。実体は AudioSrv.dll
であり、専用の Svchost.exe を介して実行される。audiodg.exe を介してAudioEngineを管理しており、このサービスをオフにすると主要な音声機能がストップする。