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

Что нового в версии 5.23 (31 декабря 2019г)
- Добавлены команды инициализации SMART для более старых  накопителей IBM/Hitachi/HGST. 

- ! Исправлена ошибка получения SMART, из-за которой могло теряться несколько последних атрибутов (была внесена в 5.22).

Что нового в версии 5.22 (12 декабря 2019г)
- Улучшена совместимость программы со старыми USB-накопителями, которые виснут от 16-байтных SCSI-команд. Теперь при установке галки "Использовать только 12-байтные команды" программа даже не пытается использовать 16-байтные. 
- Добавлены некоторые функции из популярных утилит DFT и FT для накопителей IBM/Hitachi/HGST (в разделе меню "Сервис"): 
1) Очистка SMART. 
2) Стирание данных с переносом дефектов из пользовательского листа в заводской. 
3) Переключение режимов (скорости) SATA.
4) Перманентное включение / отключение кэша.

Должно работать на всех современных SATA-винтах производства HGST, которые еще не WD. На остальных накопителях выдаст ошибку - ибо команды применяются специальные, технологические. Про эти опции в ближайшее время планируется заметка на сайте.

- Изменён алгоритм опции исправления дефектов стиранием. Теперь при обнаружении ошибки производится стирание целого блока не по одному сектору, а сразу всего. В результате стало работать стабильнее и быстрее (проверено на полудохлом WD).
- Также проверена возможность исправления дефектов стиранием через SCT-протокол, на HDD с разделом и не-выключенным MBR под Windows 10. Отлично работает.
- Улучшена процедура снятия скриншотов. Убраны лишние пиксели по краям изображения. По просьбам изменен формат имени на: дата_время_вкладка.png

- ! Устранена недоделка, из-за которой не запоминалась позиция горизонтального сплиттера, отделяющего лог на главной форме.
- На сайте hdd.by размещено обновление вопросов-ответов (FAQ) по 5-му поколению программы Victoria.

Что нового в версии 5.21 (29 ноября 2019г)
- Изменён алгоритм определения объёма накопителей с учётом особенностей всех версий Windows от 7 до 10. Универсального способа не существует. Некоторые функции в разных системах работают чуть по-разному или не работают вовсе. В связи с этим в "Настройки" -> "Паспорт" добавлены переключатели, позволяющие отключить SCSI-команды 25 и 9E совсем. По-умолчанию включены обе команды, и программа пробует вторую после неудачи с первой. Но если на Вашей системе наблюдаются такие явления, как подвисание программы при детекте дисков  - нужно попробовать установку этих галок. В этом случае объём накопителя будет определён через третью функцию, которая менее точная, но это лучше, чем совсем ничего.
- Отключен дополнительный скролл в эвентлоге, т.к. наблюдались глюки на некоторых системах. На внешний вид программы это не повлияло.
- В экспериментальных целях добавлен переключатель в "Настройки" -> "SMART", переводящий получение SMART NVMe в другой режим. Обычно это не влияет ни на что, но если на Вашем накопителе не удаётся получить SMART NVMe, попробуйте установить соответствующий флажок.

Что нового в версии 5.20 (27 ноября 2019г)
- Добавлена поддержка накопителей с интерфейсом NVMe по стандарту v1.0 и частично 1.4. ( https://nvmexpress.org/wp-content/uploads/NVM-Express-1_4-2019.06.10-Ratified.pdf ). В частности сделано:
   + Распознавание наличия шины PCIe у накопителя;
   + Получение паспорта NVMe и в нём некоторый набор данных (серийный номер, поддерживаемые опции).
  + Поддержка SMART NVMe. С переводом названий атрибутов на русский язык.
Пока удалось проверить только на SSD Samsung 970 Pro. По мере появления других SSD  - алгоритм будет улучшаться.
Внимание тех, кто создаёт загрузочные диски с программой Victoria: Поддержка NVMe работает только при наличии в системе драйверов для этих накопителей. Они есть по-умолчанию в Windows 10, а для 8.1 и серверных ОС скорей всего придется использовать дополнительные пакеты обновлений, или интегрировать драйвера каким-то другим способом. На сайте hdd.by можно скачать .torrent-файл с образцом Windows 10 PE, в котором программа проверялась на работоспособность.
- Добавлено блокирование скринсейвера Windows во время тестов, чтобы избежать проблем с Windows 10, которая может отключить тестирующийся USB-накопитель.
- Сделана возможность отключать автопарковку головок на накопителях WD, а также самостоятельно задать время, через которое будет производиться парковка. Утилита находится в разделе "Сервис" -> "Акустика и энергосбережение". Как минимум, должно работать на всех WD 3.5" и на старых WD 2.5" (до 2017г, без технологии SMR). Некоторые USB-устройства не отдают ATA-регистры, в этом случае утилита не может проверить корректность результата, и будет оптимистично говорить "ОК".
На новых WD Passport/Elements работать не должно, даже если говорит "ОК" :)

- Добавлена попытка определения серийного номера USB-флешек и других типов накопителей, у которых отсутствует поддержка команды INQUIRY.
- Добавлено распознавание накопителей с интерфейсом SD/eMMC.
- В конце скана поверхности теперь подсчитывается максимальная, минимальная и средняя скорости. А также число точек графика.
- Добавлено сообщение о неудачной записи через HEX-редактор с интерпретацией кодов ошибок средствами Windows.
- Добавлен выбор поведения формы при её растягивании за нижний край. Теперь растягивается не лог, а главное окно - так удобней. Но можно переключить в прежний режим.
- Добавлена возможность изменения размера шрифта и цвета нижней правой панели в настройки интерфейса.
- Измеритель скорости адаптирван к быстрым SSD с интерфейсом NVMe. Теперь он не дёргается.
- Разделитель тысяч теперь везде, включая эвентлог и журналы SMART. В меню не делал специально, со временем поймёте почему.
- В меню паспорта теперь отображается копируемая строка или число. 
- В верхней панели с параметрами сделана адаптация ширины полей под длину названия модели и серийного номера накопителя.
- Попалась флешка "Lexar USB Flash Drive", у которой скорость чтения аж 320 мБ/с (через USB 3.1). В связи с этим, размер блока по-умолчанию в 64 сектора был признан нецелесообразным. Сделал автоматическую установку блока 2048 секторов для съёмных устройств объёмом более 8 ГБ.
- Впервые протестировал программу под Windows 10. Оказалось, что не работает SCSI-команда 9E. Причём, только на некоторых USB-мостах. На всех предыдущих версиях Windows работает, а на 10-ке висит секунд 30, и отваливается с ошибкой. Вот такая вот техническая эволюция операционных систем. Изменил кое-что в алгоритмах, и стало гораздо лучше.

- Данная версия впервые не просто совместима с Windows 10, но и создана в Windows 10 x64. Совместимость касается режима API. Для работы в PIO пока используйте 32-разрядные версии операционных систем.
- Немного подправлена интерпретация SMART - атрибутов SSD SanDisk. Однако, полностью осилить эти SSD удастся лишь после появления у меня живого накопителя.
- В SMART теперь большие числа разделяются на несколько мелких, для удобства исследования упакованных атрибутов. Опция отключаемая.
- Перенесена галка переключения HEX RAW значений SMART-атрибутов на главную форму. Кроме того, она теперь запоминается. Если Вы делали собственные файлы перевода, то перенесите перевод данного элемента в другую секцию.
- Добавлена отдельная вкладка настроек интерфейса. Часть элементов с вкладки "Общие" перенесена на вкладку "Интерфейс", чтобы облегчить ориентацию в настройках. 
- При переключении языка и некоторых других действиях теперь обновляется SMART без обращения к накопителю (данные берутся из буферов).
- Сделан "аварийный режим" для экранов 800x600. При этом программа сама убирает все лишнее с формы, растягивается на весь экран и позволяет сразу работать.
- ! Исправлена ошибка, из-за которой портилось начало буфера при включении лампочек в режиме API.
- ! Исправлены ошибки, которые при некотором редком стечении обстоятельств приводили к выдаче "Priveleged instruction' и аварийному завершению работы.
- ! Исправлена ошибка в процедуре теста позиционирования, которая иногда могла приводить к зависанию программы.

Что нового в версии 5.1 (28 октября 2019):
- Вернул ранее отключенный разделитель тысяч (были некоторые трудности с его адаптацией).
- Добавлен украинский перевод интерфейса (автор перевода - Сергей Орлов https://datex.dp.ua/ ).
- Добавлена возможность переводить названия SMART-атрибутов.
- Переведены названия SMART-атрибутов на русский, украинский языки. 
- Мелкие улучшения в меню, какие-то пункты добавил для более удобного копирования значений, итд.
- В порядке эксперимента сделан ремап и стирание блока по протоколу SCT. Этот способ позволяет не отключать MBR под Windows 7 и выше. Стирает прямо по живому, в обход всех защит - будьте осторожны. Опция выключена по-умолчанию в настройках. Для работы требуется поддержка винтом стандарта AC2, но к счастью, она есть почти у всех ATA HDD за последние 13 лет...
- Немного исследовал SSD Samsung Evo 850, выяснил реальное назначение 235-го атрибута SMART, и адаптировал программу к нему.
- Немного подкорректированы тайминги скана при обнаружении SSD.
- Добавлен звуковой сигнал по окончании отработки скана по скрипту.
- Исправлена очередная порция ошибок. В целом, версия 5.03 уже показала хорошую стабильность при массовом тестировании, следовательно 5.1 должна быть еще лучше.
- ! Исправлен глюк: на винтах с размером логического сектора >512 байт отображалось оставшееся время меньше реального.

Что нового в версии 5.03 (21 октября 2019):
- Сделано управление функциями энергосбережения - APM. В отличии от AAM, винт не запоминает настройки после выключения питания.
- Для демонстрации оперативного переключения языков без закрытия программы - добавлен английский перевод. Вы можете сделать его лучше и/или прислать мне для включения в дальнейшие релизы.
- Сделаны отдельные папки для файлов справочной системы каждого языка. Вы можете написать справочные тексты на нужном языке, и поместить их в папки с названием языка. Имена папок должны в точности соответствовать имени .lng-файла без расширения, тогда они будут автоматически подключаться к программе при смене языка.
- ! Исправлен глюк при изменении размеров формы SMART-тестов.
- ! Устранено (ну, или заметно уменьшено) появление артефактов в карте сканирования поверхности при растяжении формы.
- ! Исправлено пролезание меню графика на карту при запуске программы.
- Во время теста поверхности заблокирована возможность автополучения SMART, журналов и паспорта. Для снижения нагрузки на тестируемые накопители при их возможных неисправностях.
- В порядке эксперимента сделана автоматическая прокрутка списков при наведении указателя мыши. Отключаемо в настройках.
- Вернул возможность автоматической остановки скана по коду 04 (ABRT) в режиме API, кроме уже существующих типов фатальных ошибок. Если будет мешать - выключите в настройках.
- Сделал запоминание логгирования "зелёных" блоков.
- ! Восстановлена возможность прокрутки карты после сканирования в режиме графика. Настройка размеров ячеек (которая мешала) сделана отключаемой в настройках.
- ! В HPA сделано автоматическое снятие галки перевода LBA в MB перед получением реального объёма накопителя, чтобы избежать ошибок округления при конвертации (и как следствия - невозможности вернуть реальный объём).

Что нового в версии 5.02 (18 октября 2019):
- Исправлена ошибка 'Range check error' при появлении отрицательных чисел в ini-файле и при определённом стечении обстоятельств во время изменения размера окна.

Что нового в версии 5.01 (18 октября 2019):

- Добавлен запрет перехода компьютера в спящий режим во время выполнения тестов.
- ! На некоторых накопителях наблюдается глюк при получении температуры SCT-командами. Временно устранено путём блокировки аномальных значений.
- Экстренный выход через меню теперь сделан с запоминанием настроек.
- ! Исправлен глючок с определением времени сканирования при количестве секунд = 0
- В SMART добавлено мульти-выделение строк и возможность скопировать в буфер обмена только выделенные.

Что нового в версии 5.0 (17 октября 2019):
Кардинально изменён интерфейс:
- Появилось главное меню и панель инструментов.
- Форма теперь может разворачиваться на весь экран и размеры её частей можно задавать произвольно. Все настройки сохраняются.
- Предел скорости увеличен до 9800 MB/s, а число точек графика - пропорционально его ширине.
- Редко используемые функции перенесены в главное меню.
- Панель настроек структурирована. Добавлены новые настройки. Например можно включать остановку скана при фатальных ошибках и даже изменять цвета некоторых элементов интерфейса.
- Заложена возможность перевода интерфейса на другие языки, но пока ничего с ними делать не нужно - в последующих версиях я планирую добавить переводы не только подписей, но и сообщений программы.
- Сделан перевод элементов интерфейса на русский язык. Пока может содержать ошибки - это эксперимент. В дальнейшем планируется также перевести все внутренние сообщения. По-умолчанию выключен в главном меню
- Добавлено больше автоматизации, которую можно отключить в настройках.
- Добавлен запуск SMART-тестов с улучшенными возможностями из главного меню.
- Была сделана попытка адаптировать журнал Extended Comprehensive SMART Error log к разным моделям HDD Fujitsu (у них разные адреса структур). Это удалось на семействах MHX, MHW. Однако на MJA пока не получилось - нужно делать анализ и писать еще одну процедуру.
- Двойной щелчок по SMART-журналу открывает его в редакторе;
- Добавлены новые названия SMART-журналов;
- Сделана попытка устанавливать автоматически размер блока для NVMe SSD.
- Добавлен показ температуры в паспорт через Smart Command Transport, и расширен детект поддерживаемых накопителем свойств.
- Программа больше не пытается получить SMART на флешках и SCSI-накопителях.
- IBM Super-SMART теперь можно пробовать получить не только на накопителях IBM/HGST, но и на любых других. Сделано это из-за того, что стали попадаться накопители HGST под видом WD, на которых супер-SMART также может работать.
- Исправлена куча ошибок версии 4.76, перечислять которые не хватит места...

Что нового в версии 4.76 (8 сентября 2019):
•	Добавлена настройка накопителя через Device Configuration Overlay - специальную энергонезависимую память, в которой можно отключать ненужные функции, включать ранее выключенные или менять доступный объём. Появилась закладка DCO, в которой также есть мини-инструкция (внешний файл dcomemo.rtf).
•	Улучшена работа со SMART-журналом Extended Comprehensive SMART Error log: как оказалось, что у разных моделей - разные адреса регистров. Это могло привести к ошибочной интерпретации данных на некоторых HDD Seagate и Fujitsu. Произведена адаптация алгоритма к различным производителям. 
Корректность работы была проверена на Fujitsu MHZ, HGST 3.5, Seagate/Maxtor 3.5" (7200.11), WD,  Samsung STxxx 35", Seagate STxxx 2.5", Toshiba 2.5". Пока работает не на всех HTSxxx 2.5" - буду исследовать причину.
•	Добавлен режим совместимости оглавления журналов со старыми накопителями. Пока - ручное переключение галкой под оглавлением (для экспериментов). В дальнейшем - автоматически, по паспортным данным.
•	Элементы интерфейса (порт и номер устройства) подвинуты вправо, галка "Hints" перенесена в подвал.
•	В режим ремапа дефектов добавлена функция детекта события Auto Reassign, когда винчестер сам делает переназначение дефектного сектора. При этом вместо слова Remap в лог выводится сообщение вида "LBAxxx auto reassign... OK".
•	!Исправлена ошибка, при которой автоматический скриншот делался не с вкладки Tests.

Что нового в версии 4.75 (5 сентября 2019):
•	!Исправил глюк в SMART с отрицательными температурами, который был внесён в процессе экспериментов.
•	!Исправлена ошибка перепроверки блока после "Erase if error". Появилась она давно, в результате адаптации к Windows 10 - были ограничены некоторые права на доступ к диску. Теперь верификация заменена на чтение, т.к. чтению нужно меньше прав - и всё заработало нормально.
•	Сделано выключение кеша записи перед ремапом, для минимизации ложных результатов проверки после него.
•	В сигнатуру-заполнитель при ремапе теперь добавлен номер текущего LBA, в виде строки LBA xxxxxxxx, размещаемой в вылеченном секторе по смещению 0.
•	В заполнитель секторов блока при "Erase if error" теперь добавлена запись номера LBA в виде строки LBA xxxxxxxx, а также отметки времени в виде "Block erased текущая дата текущее время". Обе вышеописанные функции отключаемы с помощью ключа в секции файла vcr40.ini:
		[Scan]
	Write signatures=0
•	!Сделал "тихую" запись vcr40.ini при завершении работы программы. Теперь на защищенных от записи носителях ошибка отсутствует. Всё это сделано для лучшей совместимости с Live CD.
•	При попытке произвести запись на накопитель со включенным MBR под Win 7 и выше, возникает системная ошибка 05h - "отказано в доступе". Теперь программа при появлении данной ошибки предлагает ознакомиться с FAQ #6, http://hdd.by/victoria_faq 
•	Добавлен детект HDD 3.5" Toshiba HDWE как "истинных", не являющихся наследниками IBM/HGST. Для более точного отображения SMART на них.
•	При возникновении ошибки API "устройство больше не доступно" (это означает, что накопитель подвис на длительное время, и был отключен Windows как аварийный) - скан поверхности останавливается.
•	Теперь логи ведутся раздельно для каждого накопителя. В папке с логами (по умолчанию - LOGS/) создаются подпапки с названием модели и серийным номером каждого накопителя, а в них кладутся эвентлоги, паспорт, smart, графики, скриншоты, и тд. При этом "именные" логи дублируются в общий эвентлог. При первом запуске программы, когда паспорт накопителя еще не получен (и следовательно - неизвестно название модели), при неисправности накопителя, если он не отдаёт название - вся информация также поступает в общий эвентлог. Папка с "безымянными" скриншотами также перенесена в LOGS/. Функция раздельных логов отключается снятием галки "Separate logs" на вкладке Setup.
Дефекты скана поверхности теперь пишутся в отдельный лог. Создается каталог с названием модели и серийным номером, а в нём файл с именем вида "bads_название модели_серийный номер.txt". При каждом запуске скана в этом файле фиксируется время запуска и все найденные дефекты. Файл текстовый, и каждый раз дописывается. Формат TXT-файла простой: В первую строку пишется заголовок "Victoria defects log 1.0". Затем через произвольное количество пустых строк - строка с датой и временем вида "Start: 30.08.2019 17:16:52" (слово "Start" - обязательно). В последующих строках пишутся записи о диапазонах сканирования вида xxxx, yyy (где xxx - стартовый адрес, yyy - количество секторов). В строку могут добавляться произвольные комментарии, отделенные справа от чисел хотя-бы одним пробелом. Несколько идущих подряд строк  образуют сессию. Пустая строка означает конец сессии.
Лог формата .vds используется в профессиональных программах, и отличается заголовком и форматом записей. Добавлен для совместимости.
В дальнейшем планируется использовать список как сценарий для перепроверки и лечения дефектов, найденных при предыдущих сканах или при неудачном лечении дефектов. Это позволит экономить время, проверяя лишь проблемные участки, и исключив скан всего диска.
•	Сделана возможность сканировать поверхность по списку дефектов (например, логу, созданному при предыдущем скане поверхности). Для этого на кнопке "Scan" появилось выпадающее меню. Программа анализирует список, находит в нём последнюю заполненную секцию, сообщает о том, какие номера строк будут использованы, меняет кнопку  "Scan" на "Start script" и ждёт её нажатия. При работе по списку - выводится прогресс-бар его прохождения.
Добавлена работа со SMART-журналами HDD / SSD: 
- Получение списка (оглавления) SMART-журналов, и разбор двух важнейших из них: Extended Comprehensive SMART Error log (список ошибок, возникших во время работы накопителя) и Ext SMART Selftest Log (список результатов самотестирования встроенными SMART-тестами). Оба журнала современные, 48-битные. Также сделан упрощённый разбор журнала Comprehensive SMART Error log старого образца - но смысла в нём пока не увидел. Если кому-то будут очень нужны эти журналы для старых накопителей - сделаю. 
- Сделана генерация сценария со списком дефектов из смарт-журнала (аналогичного тому, что создаёт скан). Для быстрой автоматической проверки проблемных мест. Как показала практика, адреса надо брать с запасом на размер блока в начале. Что и было сделано. В дальнейшем надо бы добавить сортировку и удаление дубликатов адресов, но пока лень делать.
Примечание: Host-журналы поддерживают запись для хранения в них информации, устойчивой к низкоуровневому форматированию диска. Остальные - только для чтения (накопитель на попытку записи вернёт ошибку). В последующих версиях планирую добавить интерпретацию других журналов, если найду описание их структуры.
•	Для исследования журналов сделал HEX-просмотрщик и их чтение/запись в файлы и из файлов. Прямое редактирование пока не реализовано. 
Сделана попытка вывести индикаторные лампочки через API. Скорей всего будет работать даже через некоторые USB-контроллеры, а также через стандартные ATA / AHCI каналы Windows. По-умолчанию отключено. Включить можно так:
[Setup]
API ATA Indicators=1
•	Теперь переключение теста записи на чтение происходит только при смене накопителя, а не по окончании тестов.
•	По окончании тестов с ремапом или стиранием - теперь выводится количество успешно вылеченных секторов.
Добавлена возможность указать альтернативный путь к каталогу для скриншотов в INI-файле. Для этого добавлен ключ такого вида:
		[Setup]
		ThirdPathSCR='D:\Docs\YandexDisk\!ScreenShots\'
Путь может быть произвольным, оканчивающийся '\'. При пустой строке или отсутствии ключа - путь будет взят из настроек программы. При неправильном пути - файл не запишется и предупредит об этом в логе.
•	! Удалены переносы при копировании единичных строк в clipboard.
! Исправлены прочие мелкие ошибки и внесены улучшения в алгоритмы.

Что нового в версии 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. На самом деле их больше, но пока не решено, как их рационально разместить. Эти функции могут встречаться не только на SSD, но и на современных 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.

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