エラーメッセージ "XAudio2_7.dll unloaded" でゲームがクラッシュする問題の回避方法

2016-07-02

エラーメッセージ "XAudio2_7.dll unloaded" でゲームがクラッシュする問題の回避方法


いくつかのゲームで報告されている、ゲームをプレイしている途中で15分ほど経つとクラッシュが発生するという現象。
"XAudio2_7.dll unloaded" というエラーメッセージがイベントビューアのログで確認できます。
検索してもなかなか有効な解決法が見つからず困っていたのですが、いくつかあたりを付けて試していて私の環境ではなんとか解決できたので記しておきます。

結論からいうと、Windowsのサービスの SuperfetchTouch Keyboard and Handwriting Panel Service のどちらかが原因だと思われますので、両方のサービスを停止して今後自動起動しないように「無効」に設定すれば解決するはずです。
(「コンピュータの管理」→「サービス」より 起動/停止 、自動起動の有効化/無効化 が設定できます。)


以下蛇足。

(1) Superfetch (SysMain)
 プログラムのメモリ読み込み管理絡みのサービス。
 必須サービスではないので止めてもたぶん大丈夫。
 私はこちらが原因だと考えていますが(2)と切り分けを試したわけではないので断定はできません。

(2) Touch Keyboard and Handwriting Panel Service (TabletInputService)
 TabletInputServiceというと通りが良いはず、タブレットPC向けのペン&インク機能絡み。
 どう有効に使うのかはわかりませんが、ペンタブ使用するにしろしないにしろOFFで問題なし。
 こちらは検索していると解決策の一つに挙げている方がいました。

XAudioというのはWindowsのゲーム向けの制御機能(DirectX API)の中のオーディオ制御の部分を受け持っていて、実ファイル自体は C:\Windows\System32 もしくは C:\Windows\SysWow64\ に XAudio2_7.dll というライブラリファイルで存在します。
こちらの機能を利用してゲーム内の音声を制御しているので、根本的な解決方法ではないですがライブラリのファイル(XAudio2_7.dll)を取り除いてしまえばゲーム音声は出なくなってしまいますがクラッシュは発生しません。
 "XAudio2_7.dll unloaded" というメッセージからすると、ゲームで使用しているにも関わらず、何かのタイミングで読み込み解除されてしまうのだと思います。
Windows8あたりから発生が見られたエラーのようで、10以降の報告が検索してみる限りだと多数を占めます。
現象が起こるゲームには FarCry 、 Fallout4、 Assasin’s Creed などが挙げられており、私はDARIUSBURST Chronicle Saviours、 閃乱カグラSHINOVIVERSUS-少女達の証明- の2タイトルでのクラッシュを確認しています。
どれもコンシューマ(PS)からの移植の作品で発生していることから、おそらくある程度共通した内部処理方法が問題になっているのだと思います。
(同人作品でも発生していることからそれ由来というわけではないですが。)

実装側(開発側)で回避策になりそうな方法↓
Known Issues: XAudio 2.7 | Games for Windows and the DirectX SDK
https://blogs.msdn.microsoft.com/chuckw/2015/10/09/known-issues-xaudio-2-7/

今回の問題の解決方法ではないですが、DirectXの再インストールを行う場合↓
Download DirectX End-User Runtime Web Installer from Official Microsoft Download Center
https://www.microsoft.com/en-us/Download/confirmation.aspx?id=35

Touch Keyboard and ... をOFFで解決したという情報ソース
Arlind13 comments on Far cry 3 random crashes on windows 10?
https://www.reddit.com/r/farcry3/comments/3i9xjw/far_cry_3_random_crashes_on_windows_10/cxereff

Superfetchとこちらの解決方法の切り分けはきちんと行っていませんが、私が Touch Keyboard and ... をOFFにしても解決しなかったので、環境によって原因になっているものが多少違うか、もしくはサービスをOFFにした後に再起動などが必要になるのかもしれません。

原因がつかみにくく、ハードウェア側を疑いだすとキリがなく非常に困りますネ。
何にせよ、解決策を探す方の手掛かりになればよいと思って記しています。


good luck and have fun :p

3 件のコメント :

  1. FF14のxAudio2_7のエラーで検索して、たどり着きました。
    私もTabletInputServiceの対策では、NGでしたが、ここのHPをみてsuperfetchの
    対策をしたら、ピタリと完治しました!
    情報を公開していただき、ありがとうございます。御礼申し上げます!

    返信削除
  2. FF14でもこのクラッシュ起きるのですね。
    私の場合はFF14では見たコトなかったので、かなり環境依存なところがある不具合なのかもしれません。
    お役に立ててよかったです。:)

    返信削除
  3. 【darius "XAudio2_7.dll"】
    でググって来ました。
    このページで挙げられている二つのサービスを停止させた結果完治を確認しました。
    とても助かりました、ありがとうございます。

    返信削除