Команда READ DEFECT DATA (12)

Команда READ DEFECT DATA (12 позволяет инициатору (например, программе) получить дефектные данные, находящиеся на каком-либо носителе (например, компакт-диске). Кроме 12-байтовой, существует 10-байтовый вариант команды.

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

  • Байт 0

    В байт следует поместить код команды READ DEFECT DATA, равный B7h.

  • Байт 1

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

  • Байты с 2 по 5

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

  • Байты с 6 по 9

    Определяют размер (в байтах) буфера данных для хранения информации списка дефектов (заголовка и описателей). Если выделенный размер буфера недостаточен, не следует корректировать длину списка дефектов. Для точного определения длины списка дефектов нужно выполнить команду READ DEFECT DATA со значением длины передачи, равным 8. Тогда адресат возвратит заголовок списка дефектов, который содержит необходимое значение длины этого списка дефектов.

  • Байт 10

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

  • Байт 11

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

Формат списка дефектов имеет заголовок (8 байт) и один или более описателей дефектов.

Приведем примеры работы с командой READ DEFECT DATA (12). Напишем функцию, которая возвратит первичный список дефектов носителя.

Листинг 9.7. Пример использования команды READ DEFECT DATA (12) на Visual C++

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

Листинг 9.8. Пример использования команды READ DEFECT DATA (12) на Visual Basic

 

 

2021-04-01

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

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

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

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

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

подробнее

 

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

 

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

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

E-mail:e-mail