解決:Microsoft Kernel Wave Audio Mixer に黄色い感嘆符が表示され、エラーコード Code 19 が出る問題
問題の説明
ThinkPad T400 に正規版 Windows XP SP3 を新規インストールし、公式ドライバーを正しく入れた直後は音が出ていましたが、再起動すると音が出なくなりました。デバイス マネージャーを開くと、Microsoft Kernel Wave Audio Mixer に黄色い感嘆符が表示され、エラーコードは Code 19 でした。最初の数回はドライバーを更新すれば音が戻りましたが、その後はドライバーを更新しても音が出なくなりました。
ネット上には UAA パッチを入れる方法やドライバーを更新する方法が紹介されていましたが、私の環境ではどれもうまくいきませんでした。
原因分析
不具合は、レジストリ内の KMIXER、Microsoft Kernel Wave Audio Mixer、Realtek に関連する項目に起因しているようです。これらのレジストリ項目に誤った設定が残っており、Windows が再起動後もその誤った構成に従って音声関連ドライバーを読み込んでいた可能性があります。
サウンドカードは Realtek ドライバーに依存していますが、Windows XP 自体が提供しているのは Microsoft Kernel Wave Audio Mixer だけで、完全な Realtek サウンドカードドライバーは含まれていません。初回設定時に Windows が自動検出して誤った構成を書き込んでしまうと、その誤設定が後続の正しいサウンドカードドライバーのインストールにも影響する可能性があります。
解決方法
レジストリの変更にはリスクがあります。作業前に
regeditで「ファイル」 -> 「エクスポート」を選び、関連するレジストリ内容をバックアップすることをおすすめします。システムの復元ポイントを作成できる場合は、先に作成しておくのもよいです。
私が行った対処は、レジストリ内の KMIXER、Microsoft Kernel Wave Audio Mixer、Realtek に関連する誤った内容を削除することでした。なお、私の環境では Realtek High Definition Audio はレジストリ検索で見つかりませんでした。
具体的な作業の流れは次のとおりです。
- 「ファイル名を指定して実行」を開き、
regeditと入力してレジストリ エディターを起動する。 kmixerを検索する。kmixerを含む値だけでなく、それらの値を含む「キー」全体も削除する。- 削除権限がないキーに遭遇した場合は、そのまま飛ばさず、先にそのキーの権限を調整する。
- 削除後にコンピューターを再起動し、Windows に Microsoft Kernel Wave Audio Mixer を自動で再インストールさせる。
削除後そのまま再起動したところ、Microsoft Kernel Wave Audio Mixer は引き続き自動でインストールされ、正常に動作しました。さらに 2 回再起動しても、このドライバーは問題なくインストールされ、ようやく問題が解決しました。
操作上のヒント
最初は、kmixer を含むキー、kmixer を含む「値」、そしてデータ内に kmixer を含む値だけを削除しましたが、再起動後も解決しませんでした。この結果から、削除が不十分だったことがわかります。
当時、Microsoft Kernel Wave Audio Mixer を直接検索しても結果はありませんでしたが、後になって Microsoft Kernel Wave Audio Mixer と kmixer が同じレジストリキー内にあることに気づきました。そのため、kmixer を含む関連「キー」はすべて削除しました。
最初に失敗した主な理由は 2 つあります。
- 削除が徹底していなかったこと。
kmixerキーとkmixerを含む値だけを削除するのではなく、「それらのkmixer値を含むキー」も削除する必要がありました。 - 権限がなく削除できないキーや値に遭遇したとき、そのまま飛ばしていたこと。後になって、重要だったのはまさに権限がないと表示された項目だった可能性があるとわかりました。
たとえば、最初に「キー」{9B365890-165F-11D0-A195-0020AFD156E4} を削除しようとしたとき、システムから権限がないと表示されました。正しい方法は、この「キー」を右クリックして権限設定に入り、Everyone に「フル コントロール」権限を追加してから削除することです。
後記
記憶が正しければ、この問題は XP を最初にインストールした時点から存在していました。理屈としては、システムのアルゴリズムに問題はないはずですし、私も手順どおり一歩ずつ操作していました。それでもレジストリ情報が正しく書き込まれない事態が起きました。コンピューターも、ときどき間違えることがあるのでしょうか。アルゴリズムが正しく、ユーザー入力も同じだったとしても?
今回の問題はおそらく、初めてサウンドカードドライバーを構成した際に、Windows が何らかの理由で検出したサウンドカードを誤った設定で自動インストールしてしまい、KMIXER 単体ではこのサウンドカードを完全には駆動できなかった、ということだと思います。その誤った構成がさらに正しいサウンドカードドライバーのインストールに影響しました。問題は、こうした偶然が重なって引き起こされたのでしょう。
