Исправлено запоминание номеров портов, при некотором неблагоприятном сочетании параметров в файле настроек (vcr40.ini).
Сделан разворот окна со SMART’ом на весь экран: в меню по правой кнопке мыши пункт «Full screen» или CTRL+A. Это пока временное решение по просьбам, до появления общего полноэкранного интерфейса.
Дополнен и улучшен SMART для SSD Kingston.
Произведена адаптация программы к USB-винчестерам, у которых USB-мост преобразует стандартный 512-байтный логический сектор в 4096-байтный. При этом исправлено около 20 мест в коде, а также добавлено отображение в паспорте накопителей с нестандартным размером логического сектора.
Стала корректно работать нумеровка секторов при записи, отображение больших секторов в HEX-редакторе. Время, проценты скана, максимальный размер блока, и даже тайминги подстраиваются под секторы нестандартных размеров.
Теперь при неудачном ремапе, чтении, записи, стирании блока и Refresh’е через API — программа выводит системное сообщение Windows о данной ситуации в лог (поскольку он генерируется в kernel32.dll, то идёт сразу на языке Windows — не удивляйтесь). Таким образом, можно, например, отличить физический дефект накопителя от запрета доступа из-за не выключенного MBR.
Попался USB-накопитель A-DATA, «Nobility NH92», на котором программа не могла получить SMART. Оказалось, внутри стоит идиотский USB-мост MA6116, впадающий в ступор от 16-байтных SCSI-команд. Пришлось сделать возможность ручного включения режима совместимости — галка Old USB/SAS mode на вкладке Setup. Потестируйте программу с галкой и без неё. На большинстве новых устройств всё должно работать в любом состоянии.
Устранена недоделка, из-за которой при получении паспорта/SMART во время скана происходило срабатывание ошибки «таймаут».
Устранён глюк, когда на вкладке паспорта диск уже выбран, паспорт прочитан… а на вкладке Advanced таблицу разделов не даёт прочитать, пока еще раз не получен паспорт.
Устранена ошибка, из-за которой при чтении с ремапом программа останавливалась после нахождения дефекта (проявлялось только в PIO).
Устранена ошибка, из-за которой при остановке скана после дефекта иногда пропадало всплывающее меню.
Устранена недоделка в процедуре остановки шпинделя HDD / усыпления SSD через USB. Оказалось, что на одном из USB-мостов нативная SCSI-команда не работает. Добавлена процедура попытки подачи ATA-команды вместо SCSI через USB, и всё стало нормально.
Устранена также ошибка, из-за которой программа принимала некоторые SSD за HDD во время «остановки вала».
Устранена причина, по которой могла быть ошибка ‘Access violation’ на быстрых ПК при закрытии главного окна.
Сделано предотвращение выхода окон программы за пределы экрана при запуске.
Значение «never» в параметре таймаута снова, как и нужно, означает бесконечное время ожидания. Кроме функции Refresh, где оно означает «обновлять каждый блок».
Вернул вертикальный скролл-бар в сетку скана. По просьбам.
Вернул запоминание галки Grid на вкладке Tests.
Сделал возможность отключения показа CHS-параметров в паспорте в связи с их устареванием.
Добавлен показ параметров Smart Command Transport (SCT) в паспорте накопителя.
На вкладке Advanced теперь можно скопировать в буфер обмена числа из таблицы разделов MBR, а также диапазон адресов раздела разложить в скан поверхности.
При установке галки HPA ‘LBA/Mb’ теперь происходит конвертация одних величин в другие сразу же (раньше для этого приходилось двигать ползунок).
Были редкие жалобы, что версия 4.72 перестала работать с IDE-винтами на некоторых компьютерах. Возможно, из-за смены способа подачи команд, но есть вероятность, что «виновата» установленая галка ‘Only non-destructive functions‘ на вкладке Setup (её воздействие также изменилось в версии 4.72). Мне не удалось своими глазами увидеть этот глюк. Но на всякий случай вернул метод DFP_SEND_DRIVE_COMMAND, оставив и более современный IOCTL_ATA_PASS_THROUGH.
По просьбе с форума реализовал «американскую мечту»: в поля ввода / вывода больших чисел добавлена возможность их отображения с разделителем тысяч. Например так: 1’953’525’167. Функция отключаемая на вкладке Setup — галка «Thousand separator». В файле vcr40.ini появился ключ Separator char, после которого в кавычках можно указать знак разделителя: точку, апостроф или пробел. Одно поле оставлено без разделителей, по причине недостатка места. После перехода «Виктории» на новый интерфейс — будет везде.
В процедуру получения EXT-паспорта добавлена команда Power-Up In Standby feature set device spin-up. Это позволяет запустить и протестировать винчестер с отключённой раскруткой вала, например от некоторых видеорегистраторов. Работает только в PIO.
Начиная с версии 4.73 программа идёт без упаковщика exe-файла (по данным айтишников, на него ругаются некоторые антивирусы), поэтому размер файла составляет около 2 Мб (было ~700 кб). Это нормально, и на качество работы никак не влияет.
Исправлены прочие мелкие ошибки и внесены незначительные изменения в алгоритмы.