86 Глава 3

переменная типа Dir_Type, в которой возвращается соответствующий элемент каталога.

Если не найден каталог, содержащий заданный файлг в переменной Disk_Error устанавливается значение TRUE, а в переменной Disk_Status — значение $FFFF (65535) .

Процедура GetDirSector. Возвращает номер сектора, в котором начинается указанный каталог, или 0, если каталог не найден. Заголовок:

Procedure GetDirSector (Path: String; var Disk: Byte;

var Dirs, DirSize: Word).

Здесь Path — выражение строкового типа, в котором указывается полный путь к каталогу; можно задать пустую строку (т.е. строку нулевой длины) для ссылки на текущий каталог; Disk — переменная типа Byte, в которой возвращается номер диска; DirS — переменная типа Word, возвращает 0, если каталог не найден, или номер сектора, в котором начинается каталог; DirSize — переменная типа Word, возвращает количество элементов каталога.

Процедура GetDiskInfo. Возвращает информацию о диске. Заголовок:

Procedure GetDiskInfo(Disk: Byte; var Info: TDisk).

Здесь Disk — номер диска; Info — переменная типа TDisk, в которой возвращается информация о диске.

При каждом обращении к этой функции, а к ней обращаются многие другие подпрограммы модуля, вначале проверяется связанный список, ассоциированный с глобальной переменной Disks: если этот список пуст или в нем не содержится сведений о нужном диске, осуществляется общий вызов IOCTL с требованием построить ВРВ, по результатам которого и формируется переменная Info. Таким образом, для ускорения доступа к диску полезно вначале сформировать процедурой GetListDisk связанный список дисковых описателей и поместить начало этого списка в переменную Disks.

функция GetDiskNumber. Возвращает номер логического диска по указанной букве его имени. Заголовок:

Function GetDiskNumber(Name: Char): Byte.

Здесь Name — имя диска (А, В, С и т.д.).

функция возвращает значение 255 ($FF), если указано недопустимое имя (если Name не принадлежит множеству 'A'..'Z или задает имя несуществующего логического диска).

Функция GetFATItem. Возвращает содержимое нужного элемента таблицы распределения файлов. Заголовок:

Procedure GetFATItem(Disk: Byte; Item: Word): Word. Здесь Disk — номер диска; Item — номер элемента FAT.