Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


Таблица томов файл-сервера - часть 2


Для получения справочной информации о томе удобно воспользоваться функцией GetVolumeInfoWithNumber():

int GetVolumeInfoWithNumber(BYTE VolumeNumber, char *VolumeName, WORD *TotalBlocks, WORD *SectorsPerBlock, WORD *AvailableBlocks, WORD *TotalDirectorySlots, WORD *AvailableDirectorySlots, WORD *Removable);

Для тома, номер которого задан параметром VolumeNumber, функция возвращает имя, записывая его по адресу, указанному параметром VolumeName, общее количество блоков (параметр TotalBlocks), количество секторов в одном блоке (параметр SectorsPerBlock), количество свободных блоков (параметр AvailableBlocks), количество каталогов, имеющихся на томе (параметр TotalDirectorySlots), количество каталогов, которые можно дополнительно создать на томе (параметр AvailableDirectorySlots), признак того, что том является съемным (параметр Removable).

При использовании этой функции следует учесть, что она предоставляет информацию только о тех серверах, к которым пользователь подключен. Если рабочая станция создала канал с сервером, но не подключилась к нему, функция вернет код ошибки 252.

Размер сектора составляет 512 байт, что вы можете использовать для подсчета объема тома в килобайтах.

Если переменная, адрес которой указан параметром Removable, получила значение 0, это означает, что соответствующий том несъемный.

В следующем разделе мы приведем исходный текст программы, которая для текущего сервера (или первичного сервера, если текущий сервер не определен) выводит список смонтированных томов. Для каждого тома программа выводит его объем в килобайтах и размер имеющегося на томе свободного пространства.

Информация о томах может быть получена и без использования описанных выше функций библиотеки NetWare C Interface.

Для определения соответствия между номером тома и именем тома можно воспользоваться функцией E2h прерывания INT21h:

На входе: AH = E2h;
DS:SI = Адрес буфера запроса;
ES:DI = Адрес буфера ответа;
На выходе: AL = Код ошибки или 0, если операция завершилась без ошибок.
<


- Начало -  - Назад -  - Вперед -



Книжный магазин