Phison.IDBLK_TIMING.Сравнение версий 1.02.74 и 1.04.03

Jan 15, 2017 15:13

Начало: Phison.IDBLK_TIMING
Предыдущая: Phison.IDBLK_TIMING.Поисковые функции

В прошлом материале я пытался объяснить, как организовано хранение данных в IDBLK_TIMING. Основная идея была в том, данные хранятся в Таблицах, и модель или группа моделей контроллера «связана» со своей таблицей (или с несколькими таблицами).

С учетом этой идеи попробуем вернуться к вопросу о несоответствии размера библиотек разных версий.

Будем сравнивать не просто размер библиотек. Мы сопоставим количество записей в Таблицах по каждой модели. И путеводной звездой для выполнения этой благородной миссии нам стает функция DllIsCheckFlashIDValid. Т.е. мы будем сравнивать, какие Таблицы использует эта функция в разных версиях библиотеки. Выбор функции не случаен - именно её ответ анализирует производственная утилита и выдает ошибку, «если что-то пошло не так»



Результат сопоставления выглядит так:



По правилам хорошего тона эту информацию нужно как-то прокомментировать. Но по-моему, здесь и так все очевидно.

Заключение
Исходя из всего изложенного, я не вижу большого смысла в поиске своего FID в библиотеке, как это рекомендуется в статье «Проверка поддержки флеш-памяти в библиотеке IDBLK_TIMING.dll»

Основные причины следующие:
• Не зная, в каких именно таблицах искать, теоретически можно найти свой FID в таблице для другой модели, или в таблице, используемой функцией DllSpecialGetTiming, которая вообще из MP не вызывается. И сильно при этом удивиться, почему MP не принимает вашу флешку
• Функции библиотеки осуществляют поиск по FID с маской, а не по прямому совпадению FID

Поэтому я бы посоветовал перебирать доступные вам библиотеки, не утруждая себя поиском по FID. Хотя не факт, что утилита, даже приняв вашу флешку, сможет её прошить. Но это совсем другая песня, хотя и связанная с IDBLK_TIMING.

Начало

phison, Флешкины потрошки

Previous post Next post
Up