Команда VERIFY (10)

Команда VERIFY (10) выполняет запрос адресату для проверки данных на носителе (диске).

Описание команды.

  • Байт 0

    В байт следует поместить код команды VERIFY (10), равный 2Fh.

  • Байт 1

    Состоит из шести частей. В первую часть (биты 7—5) помещают логический номер устройства (ЛНУ). В данное время этот параметр не используется и оставлен ради совместимости с предыдущими стандартами интерфейса SCSI, поэтому сюда следует записать нулевое значение. Вторая часть (бит 4) используется для управления заменой логических блоков в кэш-памяти (УКП). Если этот бит установлен в 1, контроллер не помещает (и не сохраняет) логические блоки, передаваемые командой READ В кэш-память. При установке в 0 логические блоки помещаются в кэши-руемую память для повторного использования. Третья часть (бит 3) зарезервирована и не используется. Четвертая часть (бит 2) указывает на пробел (Пробел). Если его значение равно 1, значит, блоки пусты. Пятая часть (бит 1) определяет проверку (П). При установке бита в ноль проводится проверка носителя без сравнения данных, а установка в 1 позволить выполнить побайтовую проверку данных, записанных на носителе, и данных, получаемых от инициатора (например, программы). Необходимо проверить байт статуса для перехвата ошибки, если сравниваемые данные не идентичны. Шестая часть (бит 0) указывает на относительный адрес (ОА) для двоичного смещения при определении логического адреса.

  • Байты с 2 по 5

    Определяют начальный адрес, с которого данные будут проверяться.

  • Байт 6

    Зарезервирован и не используется.

  • Байты 7 и 8

    Данное поле определяет количество непрерывных логических блоков данных или пробелов, которые должны быть проверены. Установка этого поля в 0 позволит не проверять данные, и это не будет являться ошибкой.

  • Байт 9

    Служебный байт, завершающий команду. Не используется.

Если биты пробела (Пробел) и проверки (П) установлены в 1, то будет возвращена ошибка. Приведем примеры использования команды VERIFY. Напишем функцию, которая проверяет носитель без сравнения данных.

Листинг 9.17. Пример использования команды VERIFY на Visual C++

Аналогичный пример функции блокировки на записи, реализованный на языке Visual Basic, представлен в листинге 9.18.

Листинг 9.18. Пример использования команды VERIFY на Visual Basic

 

 

2021-04-01

Google сообщил о запуске проекта Dunant

Проект Dunant, начатый в 2018 году, был запущен в эксплуатацию. Трансатлантический интернет-кабель соединяет США и континентальную Европу. Общая протяженность...

подробнее
2020-04-06

Новшества в обновленной Windows 10

Корпорация Microsoft завершила разработку обновления, в котором добавлено множество функций. Обновление содержит как доработку уже имеющихся систем, так...

подробнее

 

Все новости...

 

Научно-Техническое Объединение

Тел.: +7(4752) 55-95-86

E-mail:e-mail