Общее управление устройством GENERIC IOCTL
Подфункция 0Dh функции 44h прерывания INT21h обеспечивает механизм взаимодействия между прикладным программным обеспечением и драйверами блочных устройств. Эта подфункция позволяет программам читать и изменять параметры устройств, предоставляет возможность выполнять чтение, запись, форматирование и проверку дорожек диска на низком уровне с помощью драйвера устройства.
При вызове функции вы должны загрузить регистры процессора следующим образом:
Регистр | |
AH | 44h |
AL | 0Dh |
BL | Номер устройства НМД или НГМД (0 - текущий диск, 1 - А: и т. д.) |
CH | Код категории устройства: 08h - дисковое устройство |
CL | Операция: 40h - установить параметры устройства; 60h - получить параметры устройства; 41h - записать дорожку; 61h - прочитать дорожку; 42h - форматировать дорожку; 62h - проверить дорожку |
DS:DX | Указатель на блок параметров |
Если функция выполнилась без ошибки, флаг переноса CF сброшен. В противном случае этот флаг установлен, при этом регистр AX содержит код ошибки.
Через регистры DS:DX функции необходимо передать адрес подготовленного блока параметров, формат которого зависит от выполняемой операции. Опишем этот формат для наиболее важных операций.
Смещение | Размер | Содержимое поля |
0 | 1 | Специальные функции:Бит 0:Если установить этот бит в операции с кодом 60h, можно извлечь текущий BPB . Результат аналогичен выполнению команды драйвера с кодом 2 (построить BPB). Если этот бит сброшен, надо извлечь BPB, используемый по умолчанию.Бит 1:Если этот бит установлен, функция игнорирует все поля в блоке параметров, кроме поля описания физической структуры дорожки на данном устройстве.Бит 2:Если этот бит установлен, все секторы на дорожке имеют одинаковый размер |
1 | 1 | Тип устройства, возвращаемый драйвером: 0 - НГМД емкостью 320 или 360 Кбайт с диаметром 5,25"; 1 - НГМД емкостью 1,2 Мбайт и диаметром 5,25"; 2 - НГМД емкостью 720 Кбайт и диаметром 3,5"; 3 - НГМД диаметром 8" нормальной плотности; 4 - НГМД диаметром 8" двойной плотности; 5 - жесткий диск; 6 - накопитель на магнитной ленте; 7 - НГМД емкостью 1,44 Мбайт и диаметром 3,5", а также прочие дисковые устройства |
2 | 2 | Атрибуты устройства, возвращаемые драйвером. В этом поле используются только два младших бита. Бит 0 - признак возможности замены среды носителя данных (0 - заменяемая, 1 - не заменяемая).Бит 1 - признак наличия аппаратного контроля замены дискеты (1 - контроль выполняется, 0 - контроль не выполняется). Остальные биты зарезервированы и должны содержать 0 |
4 | 2 | Максимальное количество дорожек на физическом устройстве. Это поле устанавливается драйвером |
6 | 1 | Тип среды носителя данных. Используется для устройств, поддерживающих несколько типов носителей данных. Например, если в НГМД высокой плотности установлена дискета высокой плотности, тип равен 0, а если установлена дискета двойной плотности - 1 |
7 | 31 | BPB для устройства. Если бит 0 поля специальных функций сброшен, то в этом поле находится новый BPB для устройства. Если бит 0 установлен, драйвер устройства возвращает BPB для всех последующих запросов на построение BPB |
38 | ? | Таблица разметки дорожки, имеет переменную длину |
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий