拡張カーネルv2.3bでFFDShowが停止する問題を調べてみた

拡張カーネル v2.3cを入れると FFDShow を入れた環境で Media Player Classic が停止するという報告があったので、いろいろ調べてみました。

…正しいバージョンが分からず、なかなか再現できなかったのですが。

FFDShowの新しいものを入れたところ、それっぽい処理に行きついたのでした ・ω・

問題になってたのは ffmpeg.dllの処理

  SUB_L6D16BE50:
          sub    esp,0000003Ch
          mov    ecx,[L6D701D08]
          mov    [esp+2Ch],ebx
          mov    ebx,[eax]
          mov    [esp+30h],esi
          mov    [esp+34h],edi
          test    ecx,ecx
          mov    [esp+38h],ebp
          jz     L6D16BEA0
          mov    dword ptr [esp+08h],FFFFFFFFh
          mov    [esp+04h],edx
          mov    [esp],eax
          call    ecx
          sub    esp,0000000Ch
 L6D16BE83:
          xor    eax,eax
          mov    ebx,[esp+2Ch]
          mov    esi,[esp+30h]
          mov    edi,[esp+34h]
          mov    ebp,[esp+38h]
          add    esp,0000003Ch
          retn

どうやらここでぐるぐる回ってる。
で、処理をスキップさせると、例外で落ちる ・ω・

6D701D08 には、SleepConditionVariableCS (Vista専用)関数のアドレスが入っています。

Vista 専用関数で 参照してるのは
InitializeConditionVariable
WakeAllConditionVariable
WakeConditionVariable
SleepConditionVariableCS
の4つなんですが、拡張カーネル v2.3b/cには WakeAllConditionVariable が入ってなくて、
どうやら、InitializeConditionVariableがあるときの処理と、WakeAllConditionVariableが無い時の処理でクリティカルセクションの処理がちがうので、整合性が取れなくておちてるらしい
というのが分かったので修正しました。

Windows 2000 Kernel32 改造計画【BM】

v2.3dのゲーム対応版はありませんが、元々この関数群を実装してなかったので変わらないという事でご安心を・ω・

おすすめ

12件のフィードバック

  1. svyatpro より:

    what about extended kernel for Windows XP/2003?

  2. svyatpro より:

    what about extended kernel for Windows XP/2003?

  3. 黒翼猫 より:

    When end of support,
    I will support only for Not a valid Win32 application on XP and 2003 🙂

  4. 黒翼猫 より:

    When end of support,
    I will support only for Not a valid Win32 application on XP and 2003 🙂

  5. 名無し より:

    これと似ている事かも知れませんが、smplayer0.8.5を起動させてもFileを読まず、再生出来なくなってます。
    ReInstallしてもダメでした。

  6. 名無し より:

    これと似ている事かも知れませんが、smplayer0.8.5を起動させてもFileを読まず、再生出来なくなってます。
    ReInstallしてもダメでした。

  7. 黒翼猫 より:

    2.3d でNGっていう事でしょうか?
    ゲーム対応版2.3cだとどうでしょうか?

  8. 黒翼猫 より:

    2.3d でNGっていう事でしょうか?
    ゲーム対応版2.3cだとどうでしょうか?

  9. 名無し より:

    smplayですが、2.3dまではOKでした。
    2.3e(現行バージョン)では再生出来ません。
    game対応版は試してません。
    こちらの環境かも知れないので、もう少し試してみます。

  10. 名無し より:

    smplayですが、2.3dまではOKでした。
    2.3e(現行バージョン)では再生出来ません。
    game対応版は試してません。
    こちらの環境かも知れないので、もう少し試してみます。

  11. 名無し より:

    smplayの件ですが、こちらの設定ミスだったようです。
    大変お騒がせしました。

  12. 名無し より:

    smplayの件ですが、こちらの設定ミスだったようです。
    大変お騒がせしました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です