#電子のブログ

仕事したくない外資系 IT エンジニアの雑記

foobar2000 で起きた問題をエラー ルックアップ ツールと Process Monitor で調査したときの方法のご紹介

※ 本ページは一部プロモーションが含まれています

以前に foobar2000 を使っていた時にエラーに遭遇したことがありました。

www.free-denshi.life

そのときに私がどうやってトラブル シューティングを行ったかを、これまた備忘録的にまとめてみようと思いました。

Microsoft エラー ルックアップ ツールのご紹介

ところで皆様は Microsoft から Microsoft エラー ルックアップ ツールという、エラー コードの意味を調べるツールが公開されていることはご存じでしょうか?

learn.microsoft.com

このサイトから "Err_6.4.5.exe" という名前のプログラムをダウンロードして、コマンド プロンプトから実行するだけです。

私は C ドライブ直下に Erros という名前のフォルダーを作り、ここに "Err_6.4.5.exe" を配置しています。
何が嬉しいかというと、特に何も考えなくても Err まで覚えていれば以下のように簡単に移動できるのが嬉しい。

Microsoft Windows [Version 10.0.22621.3007]
(c) Microsoft Corporation. All rights reserved.

C:\Users\_____>cd C:\Errors <- cd C:\err まで打って tab キーを押している

C:\Errors>Err_6.4.5.exe <- err まで打って tab キーを押している

※ ユーザー名はマスクしています

プログラムの場所も迷子にならないのでこの方法で使っています。



実際に調査をしてみよう

Process Monitor については、過去に取り上げたことがあるので今回は省略します。

www.free-denshi.life

端的に紹介すると、ツールを実行している間にどのプロセスがどのファイル、レジストリにアクセスしているかを確認できるツールです。

エラー コードの意味を調べてみる

Source: "cdda://00BEDE4B" / index: 1
  An error occurred while writing to file (The encoder has terminated prematurely with code -1073741515 (0xC0000135); please re-check parameters) : "C:\Users\<ユーザー名>\Music\TEST\THE IDOLM@STER MILLION C@STING 01 解夏傀儡\01. プロローグ.flac"
  Additional information:
  Encoder stream format: 44100Hz / 2ch / 16bps
  Command line: flac.exe -s --ignore-chunk-sizes -5 - -o "temp-488991C66F38394593773F7B6850401B.flac"
  Working folder: C:\Users\__________\Music\TEST\THE IDOLM@STER MILLION C@STING 01 解夏傀儡\
  Conversion failed: The encoder has terminated prematurely with code -1073741515 (0xC0000135); please re-check parameters

※ ユーザー名はマスクしています

この中の -1073741515 (0xC0000135) がエラー コードですね。

これを先ほど紹介したルックアップ ツールで調べてみましょう。

C:\Errors>Err_6.4.5.exe -1073741515
# for decimal -1073741515 / hex 0xc0000135
  STATUS_DLL_NOT_FOUND                                           ntstatus.h
# The code execution cannot proceed because %hs was not
# found. Reinstalling the program may fix this problem.
# as an HRESULT: Severity: FAILURE (1), FACILITY_NULL (0x0), Code 0x135
# for decimal 309 / hex 0x135
  ERROR_NOTIFICATION_GUID_ALREADY_DEFINED                        winerror.h
# The specified file already has a notification GUID
# associated with it.
# 2 matches found for "-1073741515"

今回は一番上にある STATUS_DLL_NOT_FOUND がエラー コードの意味であるとわかりました。

ちなみに -1073741515 ではなく 0xC0000135 で調べても結果は変わりません。

C:\Errors>Err_6.4.5.exe 0xC0000135
# for hex 0xc0000135 / decimal -1073741515
  STATUS_DLL_NOT_FOUND                                           ntstatus.h
# The code execution cannot proceed because %hs was not
# found. Reinstalling the program may fix this problem.
# as an HRESULT: Severity: FAILURE (1), FACILITY_NULL (0x0), Code 0x135
# for hex 0x135 / decimal 309
  ERROR_NOTIFICATION_GUID_ALREADY_DEFINED                        winerror.h
# The specified file already has a notification GUID
# associated with it.
# 2 matches found for "0xC0000135"

好きな方で確認してください。

原因となっているファイルを探す

DLL_NOT_FOUND
つまり 「dll ファイルが見つかんねぇ!」 ということです。

では足りない dll ファイルを探してみましょう。

ここで使うのが Process Monitor です。

エラー コードがわかっているので "Detail contains -1073741515" というフィルターをかけましょう。
フィルターをかけるには以下の画像の ③ のボタンをクリックすればよいのです。

フィルターをかけた結果がこちら。

今回取り込みにしくじった CD のトラック数は全部で 7 つ。
各トラックの変換時にこのエラーが出ていることがわかっているのでしっかり問題が記録されていることがわかります。

DLL_NOT_FOUND で落ちている、つまりこのエラーが発生する直前には何かの dll ファイルを読み込んでいるはずです。

7 つのうちのどれかを選択した状態でフィルターを開き、一旦先ほどのフィルターを解除します。 そして今回は flac.exe がエラーを出しているので "Process Name is flac.exe" というフィルターを適用します。

すると、先ほど選択したエラーの部分が画面に表示されたまま、Process Name が flac.exe になっている情報のみが表示されます。

※ 三度ですが、ユーザー名はマスクしています

選択した行に "C:\Program Files\foobar2000\libFLAC.dll" というものが見えますね。
おまけに NAME NOT FOUND と書かれています。
そのあと、"C:\Windows\System32" や "C:\Windows\System" など、いくつかのフォルダーに libFLAC.dll というファイルが存在しているかを確認しては NAME NOT FOUND、「そんな名前のファイルは知らん」 と言われています。

色々な場所を確認して、どこもかしこも 「そんな奴は知らん」 状態となった結果、DLL_NOT_FOUND になっています。

ここまで調べると libFLAC.dll というファイルがないのが怪しそうというのがわかります。
ですがこの dll が何者か私にはわかりません。

原因となったファイルについて調べてみる

あとは Google 先生に聞いてみましょう。
最終的に聞いた結果がこの対処方法、flac の v1.4.1 から libFLAC.dll というファイルも必要になった というものでした。

www.free-denshi.life



完走した感想

今回のトラブルシューティングを完走した感想ですが、ぶっちゃけ全く難しくないです。

エラー コードを見つけたら意味を調べて、どのファイルがないかを調べる。
ただただこれだけです。

記事を作った理由としては、自分の備忘録です。
あとは意外とエラー ルックアップ ツールを知らない方が周りに多かったのでその布教、といったところです。

CD の取り込みと言えば最後に。

自由電子P は弊プロダクションの周防桃子のほかに、箱崎星梨花の担当をしております。
その箱崎星梨花が出演したドラマ、エンダーエンダーが発売されております。

ぜひ foobar2000 のトラブルシュートを行い、ちゃんと取り込めるようになった環境で拝聴してみてはいかがでしょうか。