Victoria 4.73b SSD
Программа для тестирования HDD, SSD, USB, CD и Flash - накопителей.
Список изменений

Что нового в версии 4.73 (22 апреля 2019):

•	! Обнаружил, что при некотором неблагоприятном сочетании параметров в файле настроек (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. Это позволяет запустить и протестировать винчестер с отключённой раскруткой вала, например от некоторых видеорегистраторов. 
•	Начиная с версии 4.73 программа идёт без упаковщика exe-файла (по данным айтишников, на него ругаются некоторые антивирусы), поэтому размер файла составляет около 2 Мб (было ~700 кб). Это нормально, и на качество работы никак не влияет.
•	! Исправлены прочие мелкие ошибки и внесены незначительные изменения в алгоритмы.

Что нового в версии 4.72 (15 янв. 2019):
•	Добавлена функция Refresh в скан поверхности через API - чтение и запись в это же место при обнаружении медленного участка. Раньше в программе был код, реагирующий только на ошибку чтения. Теперь он работает по таймауту, заданному пользователем или автоматически. Если таймаут установить в положение "never" - будут перезаписываться абсолютно все блоки. Функция Restore в режиме PIO сохранена.
•	Добавлена поддержка графических тем Windows. Вместо стиля Win95 - Ваша любимая тема. Пришлось немного переделать интерфейс - убрать рамки, заменив их на панели. 
•	Сделана работа через API с AAM под Windows 7 и выше. Теперь действительно можно регулировать уровень шума HDD на новых системах, если винчестер это поддерживает.
•	Стал работать супер-SMART на HDD IBM/HGST под Windows 7 и выше.
•	Добавлена поддержка супер-SMART HDD Toshiba 3.5". Пока проверено лишь на модели HDWD120, но должно также работать на DT01, MG0, MD0, MC0, и т.п. 
•	Появилась возможность задать путь к логу с указанием буквы диска. Например, программа может стартовать с виртуального диска-"реаниматора", а логи оставлять в надёжном месте.
•	Появилась возможность тестировать съёмные накопители (USB и CD/DVD) без прав администратора - путём их выбора как логических дисков. Проверить пока удалось лишь под Windows 7.
•	Сделана возможность работы в PIO без прав администратора, если конечно драйвер porttalk.sys уже установлен, а проверка прав - отключена принудительно. Для этого в vcr40.ini есть скрытый ключ AdminRightsIgnore.
•	Добавлена возможность выбирать логический том как объект исследования в списке API-устройств. Для этого на вкладке Setup нужно выключить галку "Ignore HDD".
•	 Паспорт API-накопителя дополнен «логическим паспортом». Это нечто переходное между железом и софтом. Опция активируется при снятии галки "Ignore HDD" на вкладке Setup.
•	Добавлен дескриптор носителя в паспорт для не-ATA устройств. Для более объективных данных при внештатных ситуациях.
•	Добавлена кнопка мгновенного копирования текущего сектора в качестве стартового в скан поверхности.
•	Реверсный "быстрый" скан адаптирован к SSD.
•	! Устранена недоделка, из-за которой на "быстром" скане для последнего блока отображалась скорость 1/2 графической.
•	! Устранена недоделка: при получании SMART (или паспорта) во время скана поверхности сбрасывались тайминги, определяющие цвета прямоугольников сетки.
•	Улучшен вид "полного" графика на малых диапазонах за счёт более совершенного алгоритма интерполяции.
•	В выпадающее меню лога добавлены пункты "Установить [число] как начальный/конечный LBA". Число берётся из строки, на которую наводится курсор.
•	Такое же меню добавлено в график сканирования поверхности. Число берётся из координат графика, куда наведён курсор мыши. Таким образом можно оперативно устанавливать границы дефектных областей для дальнейших попыток лечения.
•	Добавлена возможность отключить рекалибровку HDD перед сканом поверхности (на вкладке Setup галка "Recall HDD before Scan"). Может потребоваться, если у HDD есть дефекты на начальных адресах.
•	Добавлена возможность нормальной работы программы под Windows 10 на некоторых ноутбуках со встроенным несъёмным SSD. Проблема в том, что Windows иногда не позволяет сканировать поверхность, если программа запущена с активированной по-умолчанию записью. Теперь снятие галки "Only non-destructive functions" отключает запись полностью на уровне хендлеров. Правда, при этом перестёт работать подача комманд в накопители, и о полном паспорте придётся также забыть. Но это всё равно лучше, чем совсем ничего :) 
•	! Исправлена "ошибка переполнения" при сканировании дисков с аномально высокой скоростью (например Verify на некоторых SSD лишь криво эмулируется, что дает ложную скорость выше 2000 мб/с)
•	! Исправлена ошибка, из-за которой на индикаторе текущего LBA отображался 0 при остановке реверсивного скана поверхности .
•	Галка Grid на вкладке Tests теперь не запоминается в настройках. А то были жалобы - пользователи забывали вернуть, и впоследствии удивлялись, куда делись привычные "прямоугольники".
•	Из верхней панели демонтированы часы, секция серийного номера расширена, между секциями введены сплиттеры. Это подготовка к переезду на более современный адаптивный интерфейс.
•	Вместо анимации сделана подсветка корешка закладки, на которой идёт активный процесс. Не понравится - верну обратно как было.
•	! Исправлено деление на 0 при попытке случайного чтения на кардридере без карты.
•	! Наконец исправлен ужасный глюк, из-за которого в списке API-дисков последний пункт невозможно было кликнуть без прокрутки			 
•	Сделана возможность задавать размер блока, отличный от 256 секторов для виртуальных и нестандартных накопителей.
•	Отключена оптимизация в компиляторе для сокращения числа глюков. Из-за этого немного вырос размер, но повысилась стабильность.
•	Попалась электронная книга PocketBook 301, которая в режиме кардридера отдаёт пустой паспорт, но при этом без какой-либо ошибки.  После этого в "Викторию" была добавлена проверка данной ситуации и замена паспорта на функцию Windows, чтобы хотя-бы отображался размер и была возможность тестирования встренной и внешней памяти. Не исключено, что это улучшит работу с другими нестандартными устройствами хранения. 
•	Попался плеер Jagga Boom на RockChip. С ним ни одна версия программы 2018 года не работает - виснет и выплёвывает. Оказалось, плееру не нравится попытка доступа к полному паспорту через USB. Пришлось изменить алгоритм перебора функций. Однако, при этом перестала нормально детектиться электронная книга :) Пришлось добавить галку переключения между новой и старой командами получения размера. В Setup она теперь называется "Don't get SCSI 25h" и расположена на месте удалённой галки "Dont get drive type". Итог - по умолчанию всё работает и с плеером, и с книгой. Но у книги размер отображается неправильный - для неё и надо установить галку в Setup. Во избежании проблем, её запоминание отключено.
•	Снимки экрана теперь складываются в отдельную папку SCR, букву диска которой можно задать в Setup, или по-умолчанию она создаётся в каталоге с программой.
•	По просьбам форумчан http://forum.ru-board.com добавлены ещё 2 варианта окончания скана поверхности: 
"Save screenshot" - по окончании скана делается снимок вкладки Test в виде PNG-картинки.
"3 SS+Shutdown" - по окончании скана делаются снимки вкладок Tests, Smart, Standard и затем происходит выключение компьютера.	
•	Попросили сделать вывод в паспорт SSD количество записанных данных. В SMART многих SSD есть атрибут 241, который в зависимости от модели, может содержать количество записанных секторов или гигабайт. Сделан автоматический детект нужного значения по следующим типам SSD: 
Adata, Corsair, Datex, Intel, Kingston, Lite-on, LMT, OCZ Vector, OCZ Vertex 3, OCZ Vertex 2, OCZ Vertex450, Plextor, PNY, Samsung, SanDisk, Transcend 2.5, WD. 
Для тех накопителей, у которых автоматически неправильно определился метод (программа выводит неправдоподобно большие или малые значения), предусмотрен ручной переключатель в файле vcr40.ini :

[EXT PSP Button]
Total WR method=0
0 - автоматически по семейству/модели SSD. 1 - игнорировать модель и интерпретировать как гигабайты. 2 - интерпретировать как секторы.
•	Метод проверки механики (Seek / Verify / Read) больше не запоминается в настройках. Вместо этого сделана автоматическая настройка на наилучший метод при получении паспорта и оставлено ручное управление в текущем сеансе.
•	Экспериментально убран вертикальный скроллбар из поля скана поверхности.

Что нового в версии 4.71b SSD (12 дек. 2018):
•	Добавлено снятие скриншотов - "горячее" сочетание клавиш CTRL+S. Из-за этого исполняемый файл подрос на 37 кб. Рекомендую проверить на совместимость с минималистическими версиями Windows PE - вдруг понадобятся дополнительные системные библиотеки?
•	Добавлено определение наличия у диска интерфейса PCIe (SSD с мостом PCIe to SATA).
•	Добавлено определение форм-фактора накопителей. Выводится под окном паспорта.
•	Добавлена отдельная строка функций SSD в паспорт, в частности Sanitize и Crypto Scramble. Туда же перемещен и Trim. На самом деле их больше, но пока не решено, как их рационально разместить. Эти функции могут встречаться и на современных HDD.
•	В HEX-редакторы добавлено меню (по правой кнопке мыши), которым можно переключить размер шрифта. 
•	! Исправлена ошибка, из-за которой на SSD OCZ Vertex размер блока при скане оставался 256 секторов. Это и послужило причиной внеочередного апдейта программы.
•	Дополнена справка по F1. Более свежая информация между выходами обновлений будет опубликована на сайте hdd.by
•	Попытался убрать вроде бы ненужный переключатель номера API-устройства с правого нижнего угла формы. Если он кому-то нужен, то верну. Мне за 12 лет ни разу не пригодился.
•	Небольшая адаптация интерфейса к XP и 7, правый край формы вроде-бы стал выглядеть лучше.
•	Убран вертикальный скролл-бар в хелпе, т.к. оказался глючным. Скроллировать можно колесом мыши и клавишами PageUp/PageDown.
•	Изменен алгоритм установки драйвера porttalk.sys. Теперь проверяется наличие драйвера в системной папке Windows, и если его нет, то производится его установка на 32-х битных системах. Переработаны выводимые в лог сообщения об ошибках драйвера, убраны лишние. Итог - режим PIO должен гарантирвано заработать на x32 без дополнительных действий со стороны пользователя.

Версия 4.7 - не публикуется для исключения зрительных ассоциаций с 4.47. 

Что нового в версии 4.69b (02 дек. 2018):
•	Добавлен быстрый тест поверхности (как в HD Tune). Теперь получить представление о накопителе можно за 2-3 минуты. Соответственно, добавлена новая кнопка QUICK под бывшей кнопкой Start, а кнопка Start немного уменьшена, и переименована в Scan. Для того, чтобы знать, какой тест был запущен - добавлен индикатор режима скана под кнопкой.
•	Окончание случайного чтения теперь происходит не только по времени, но и по завершению построения графика, если выключен Grid.
•	По просьбам, вернул возможность использовать PC-спикер в качестве звукового индикатора. Как и раньше, работает только на x86.
•	Предотвращено случайное закрытие программы пользователем во время выполнения операций.
•	Теперь в лог пишется не только номер BAD-сектора, но и объем диска перед ним.
•	По окончании скана, в лог пишется также и адрес последнего блока.
•	Добавлены новые SMART-атрибуты для SSD.
•	Добавлен детект SATA3 и будущего SATA4 в паспорте.
•	Исправлена ошибка, из-за которой при верификации больших накопителей в режиме API на графике возникала ступенька, кратная 2Тб (применена современная 16-байтная SCSI-команда, не имеющая ограничений на адресацию >32 бит).
•	Исправлено и доделано отображение графика при реверсивном и случайном скане поверхности.
•	Устранено много нелогичного в отображении и поведении графика скана на разных режимах.
•	Исправлена ошибка, из-за которой иногда неправильно определялся размер сектора на оптических дисках, что мешало чтению секторов в HEX-просмотрщик и выдавало "Error #57"
•	Блок 2048 секторов теперь устанавливается автоматически, начиная с 400Мб (было - с 1Тб)
•	Улучшена работа программы при загрузке графика из файла: отображаются границы тестирования, корректно работает мышь.
•	Типичная ситуация: после экспериментов с размером блока на одном накопителе - забыли вручную вернуть галку "Auto block Size" на вкладке Test. Это может привести к неправильным результатам на другом диске. Теперь при смене диска этот элемент возвращается в положение "Auto".
•	Увеличен шрифт в HEX-просмотрщике, вызываемом по F8.
•	Доработана индикация скана. С помощью таймера я попытался сделать её равномерной и не зависящей от скорости накопителя. Также она теперь должна меньше тормозить систему, и как следствие - повысить скорость и точность тестирования. Но поскольку это впервые, возможны какие-то недоделки, устранимые в дальнейшем. Для чего это всё? Готовится расширение предела скорости скана от >3000 мб/с (сейчас - всего 655 Мб/с), и постепенно ликвидируются возможные узкие места в алгоритмах.
•	При тестировании поверхности в режиме PIO - сделано снятие галки "Reset HDD" возле кнопок навигации, иначе рвался ATA-протокол и возникала незапланированная задержка ответа HDD.
•	Попросили вернуть как было не-обновление ширины столбцов в SMART. Теперь при нажатии на кнопку "Get SMART" столбцы обновляются, а при нажатии альтернативной кнопки - F9, остаются необновлёнными.
•	Цвет серой панели справа сделан более нейтральным. Это временно. Вероятно, скоро буду приводить интерфейс к единству стиля.
•	Цвета паспорта и лога сделаны бледнее.
•	Оптимизирован код, размер исполняемого файла стал меньше.
•	Справочная система переделана с .html на RTF-формат. Должно стать красивей и не зависеть от версии браузера IE. 
•	Текстовые файлы, приложенные к программе, теперь тоже в RTF. Не открывайте их в MS Word для редактирования - они распухнут в несколько раз! Используйте MS WordPad.

Сергей Казанский, 22.04.2019
Официальный сайт программы: http://hdd.by