症状
ExHIBIT.exeが起動時に異常終了します
原因と対策
原因1:
汎用のExHIBIT.exeの新しいバージョンを上書きした際に起こることがあります。
対策1:
バージョンアップを行わないか、userdata\*.system.datを削除してから、ExHIIBT.exeを起動して下さい。
解説1:
これは、ExHIBIT.exeのバージョンアップに伴って、*.system.datの構造が変わったことが原因です。
メーカーが提供するバージョンアップはこの点が考慮されていますが、汎用の実行ファイルでは考慮のしようがないため、このようなことが発生する場合があります。
原因2:
windowsVISTAで、次の1と3、または2と3の条件がそろった場合に発生します。
- ExHIBIT ver.1.30以前を利用している
- acmp.exe ver.1.00 rev.1以前を利用している
- インストールしたフォルダに、セキュリティディスクリプタが全く存在していない
対策2:
ExHIBIT ver.1.31 以降、acmp ver.1.01 以降をご利用下さい。
バージョンアップが難しい場合は、セキュリティ・ディスクリプタをもったドライブにインストールして下さい。UACの有効無効は無関係です。
解説2:
ExHIBITはVISTA以降のUACに対応するため、OSがVISTA以降の場合、起動時にuserdataフォルダのセキュリティ・ディスクリプタを調査します。
この調査時に、セキュリティ・ディスクリプタがまったく設定されていないフォルダにインストールされていると、情報の取得に成功しても、
その値自体が異常になっていることがあります。この値をそのまま、windowsAPIの::GetAclInformation()の第1引数に与えると、
アクセスバイオレーションを発生させて落ちます。acmp.exeについても同様です。
通常、NTFSフォーマットされているドライブには存在します。
確認方法はインストールしたいフォルダのプロパティを開いて、フォルダのプロパティに「セキュリティ」タブが存在していれば大丈夫です。
「セキュリティ」タブがない場合、そのフォルダにはセキュリティ・ディスクリプタそのものが存在しません。
参考