Windows 11 登場(その2:カーネルは変わったか?)
先日正式リリースされたWindows 11では、どの程度Windowsカーネルが変わったのだろうか?
実は、カーネルやドライバーインターフェース周りの変更について、公開された情報はない。例えば次の Flight Hub が Release Note 的な機能を持つと思われるが、カーネルやデバイス周りの変更については見つからない。
参考ページ
Flight Hub - Windows Insider Program | Microsoft Docs
筆者はたまたま、Windows 10 用APOドライバー(下記参照)を開発していた9月頃、行き詰りの原因のレジストリが Windows 11でどうなっているかを確認した。APOドライバーが何かは別途最後に示す。
Windows 11 は元は Windows 10 21H2となるはずで、急作りのOSと噂されていた。それでカーネルやドライバー関連のレジストリは Windows 10 21H1とそれほど変わらないと想定していた。Windows 11 をPreview版から評価しても、インストールと基本動作だけ確認し、レジストリ構成の詳細まで検証していなかった。
調べたところ、各種のインストールされている APOドライバー の個別パラメーターと優先順を管理するレジストリが変更されていた。
このWindows 11 調査の目的は勿論、開発中のWindows 10 ドライバーのレジストリ操作が Windows 11でも有効かどうかを確認する目的もあったが、当てが外れた。DelayAPO 等のWindowes 10 用 APOサンプルドライバーは、Windows 11 でも問題無く動作していたことから、APO管理用レジストリを直接参照すべきでないという大きなヒントを貰った訳で、その結果 Windows 10 APOドライバー開発は課題を解決して先に進むことが出来た。
レジストリの何が変わったか
APOとそれに伴って調査したドライバーサンプルの変更点を示す。
次に例を示す通りWindows 10のレジストリは
\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render\{GUID}
以下に機能(データ種類、FLOW)別優先順位を示す Level:0からLevel:2 の値がある。
個別効果を設定するパラメーターはその下の FxProperties 以下に置かれる。
Windows 11の同じ場所では、各機能別優先順位を示す値は無くなり、別の場所に移動した。個別パラメーターを置く FxProperties以下 には、Default,User,Volatile の子キーを持つ 1~2個の目的不明な {GUID}キー が追加されている。
カーネル周りの多くの部分はWindows 10 21H2と共通であるが、この例のデータ別順位値の様に、必ずしも全てが同じではないことが分かった。
Windows WDK サンプルの差分調査
GUIではなく、デバイス制御に属する APO のレジストリが全く同じでは無いことが判明したので、WDK サンプルの変更を調べた。Windows 95 の頃からカーネルやドライバーインターフェースが変わる場合、WDK(Windows XP 以前はDDK)の開発者向けサンプルソースが同時に追加・変更されて来た歴史があるからだ。
GitHub の4月以降のWDKサンプルを現在までくまなく調べた結果、ドライバー署名と小さな問題やバグFIXを除いて変更されたのは、これもまた サンプル APOのソースを含む、SysVAD Virtual Audio Device Driver Sample だけであった。つまり、それ以外には公開済の多数の WDKサンプル を修正する様なカーネル変更は無いという事だ。
この変更は結構大掛かりで、103個のファイルが変更され、SysVAD ソリューションのビルド手順が変わり、AecAPO の新しい Scanデバイス用 APO のサンプルが追加された。
Realtek オーディオドライバー
この様に Windows 11 では、多少なりとも Audio (APO)関連のレジストリやそれを操作するカーネルが変更された訳だ。影響を検索してみると、Realtek オーディオドライバー に関わる問題が世界的に結構な数で、出ていることが分かった。Realtek は今では世界的に有名なオーディオチップメーカーである。オーディオチップの供給だけではなく、カスタム APO を含むオーディオ ドライバーやアプリケーションをOEM先やマザーボードベンダーに供給している。詳細な状況は確認していないが、このAPO 関連の変更が原因となっている可能がある。
まとめ
まとめると次の通りである。
- GUI関連以外では、Windows 11ではオーディオ周りが少し変更された。
- 世界的に問題が発生しているRealtek(パラメーター)オーディオドライバーの問題も、恐らくそれに起因している。
- カーネル、ドライバー、デバイスインターフェース周りについては今のところ。そのほかの使用に影響を及ぼす様な変更は見つかっていない。
補足:APO とは?
APO (Windows Audio Processing Object) は、Windows上であらゆるオーディオ処理を行うことが可能な、ユーザーモードのドライバーである。実態はCOMのDLLで、専用のインターフェースを持ち、Windows カーネルとインターフェースしてデータの受け渡しを行うミドルウェアの一種である。つまりドライバーとしてこれを実装して置けば、あらゆるオーディオを扱うアプリケーションで機能を利用することができる。OSSの Equalizer APO が有名だ。
Windows 8 以降、Windows のオーディオ処理が急速に強化されて来たのは、この APO 仕様の策定と実装進化によるところが大きい。例えば 音声入出力処理で有名な Cortana のよな音声認識、出力データ生成を任意のアプリケーションと連携させることができる。ゲーム関係では、敵の存在位置を耳で聞き分けることが出来る、実際のあるいは擬似的な立体音響を処理する目的で、様々なオーディオ周辺機器メーカーでの実装製品が市販されている。
- Atomu Hidakaさんのブログ
- ログインしてコメントを投稿