Для обеспечения возможности работы с файлами, расположенными на дисках файл-сервера, сетевая оболочка выполняет отображение локальных дисков рабочей станции на сетевые каталоги. При этом прикладная программа, запущенная на рабочей станции, может и не заметить, что она работает не с локальным диском, а с удаленным. Разумеется, для обеспечения возможности отображения пользователь должен подключиться к файл-серверу, сообщив ему свое имя и пароль. В предыдущей главе вы научились составлять программы, подключающие пользователя к файл-серверу.
Дополнительно к таблице номеров каналов серверов сетевая оболочка работает еще с тремя таблицами, необходимыми для отображения дисков. Это таблица флагов дисковых устройств (Drive Flag Table), таблица номеров каналов дисковых устройств (Drive Connection ID Table) и таблица индексов дисковых устройств (Drive Handle Table).
Эти таблицы могут отображать 32 дисковых устройства, все они имеют размер 32 байта, по одному байту на одно устройство.
У вас может возникнуть вопрос: почему 32 дисковых устройства, а не 26? Действительно, MS-DOS позволяет вам использовать только 26 дисковых устройств, обозначая их буквами в диапазоне от A до Z. Сетевая оболочка добавляет еще шесть устройств, которые обычно используются в качестве временных логических дисков, отображаемых на сетевые каталоги только на время работы программы. Для обозначения этих дополнительных дисков сетевая оболочка использует следующие символы:
[ | левая квадратная скобка; |
\ | обратный слеш; |
] | правая квадратная скобка; |
^ | символ caret (знак для вставки); |
_ | подчеркивание; |
' | апостроф. |
Таблица флагов дисковых устройств (Drive Flag Table) содержит байты состояния для каждого дискового устройства рабочей станции. Пользуясь этой таблицей, программа может определить, какие диски рабочей станции локальные, а какие отображены на сетевые каталоги. Приведем список возможных значений элементов таблицы флагов:
0 | Диска нет, т. е. этот диск не отображен ни на локальный диск, ни на удаленный сетевой каталог |
01h | Диск постоянно отображен на сетевой каталог |
02h | Диск временно отображен на сетевой каталог (временное отображение действует только во время работы программы; когда программа завершается, отображение автоматически отменяется) |
80h | Локальный диск рабочей станции |
81h | Локальный диск рабочей станции, постоянно отображенный на сетевой каталог |
82h | Локальный диск рабочей станции, временно отображенный на сетевой каталог |