Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5.14.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.68 Mб
Скачать

Открытая архитектура

Так как сетевой сервер встроен в Windows NT, можно решить, что он жестко "зашит", и на этом остановиться — но это не так. Определенная цель "включай и работай" требует от Windows NT способности подклю­чаться к разнообразным сетям. В связи с этим возможна не только динамическая загрузка и выгрузка редиректора, сервера и драйверов транспортов, но и одно­временное выполнение различных компонентов этого типа.. Windows NT под­держивает сети, отличные от LAN Manager, несколькими способами:

• Она обеспечивает доступ к иным, чем Microsoft, файловым системам для подключения ресурсов и просмотра сети, а также ввод-вывод в удаленные файлы и устройства через общие API Win32 (API WNet).

• Она допускает одновременную загрузку нескольких драйверов протоколов и предоставляет редиректорам общий интерфейс для обращения к этим драйверам.

• Она предоставляет драйверам сетевых карт интерфейс и среду (NDIS 3.0) для доступа к драйверам транспортов и обеспечения переносимо­сти на будущие системы MS-DOS.

Доступ пользовательского режима к удаленным файловым системам

API ввода-вывода и WNet Win32 предоставляют приложениям пользовательского режима два способа доступа к файлам (и дру­гим ресурсам) на удаленных системах. Оба этих API для доступа к сети исполь­зуют возможности редиректора. В систему могут быть загружены и до­полнительные редиректоры для доступа к сетям других типов. Рассмотрим программное обеспечение которое решает, какой редиректор вызвать для обработки запроса на удаленный ввод-вывод. За это ответственны следующие компоненты:

Маршрутизатор многосетевого доступа (multiple provider router, MPR) Это DLL, определяющая, к какой сети следует обратиться, когда прило­жение использует Win32 API WNet для просмотра удаленной файло­вой системы.

Многосетевой UNC (multiple UNC provider, MUP). Драйвер, определяю­щий, к какой сети следует обратиться, когда приложение использует Win32 API ввода-вывода для открытия удаленных файлов.

Маршрутизатор многосетевого доступа для API WNet

Функции WNet Win32 позволяют приложениям (включая Windows File Manaeer) подключаться к сетевым ресурсам, таким как файлы и принтеры, а также про­сматривать содержимое удаленных файловых систем любого типа Так как этот API предназначен для работы с различными сетями и по разным протоколам то должно присутствовать некоторое программное обеспечение для корректной посылки запроса по сети и правильной интерпретации результатов получаемых от удаленного сервера. Программное обеспечение, отвечающее за выполнение этой задачи, показано на рис. 9-9.

Компонент сетевого доступа (provider) - это программный компонент позволяющий Windows NT выступать в качестве клиента некоторого удаленного сервера. Среди операций, выполняемых встроенным компонентом сетевого до­ступа WNet, можно назвать установление и разрыв сетевого соединения удален­ную печать и передачу данных по сети. В его состав входят DLL, сервис рабочей станции и встроенный редиректор. От других изготовителей сетей требуется предоставить только DLL и редиректор.

Когда приложение вызывает некоторую функцию WNet, этот вызов попада­ет непосредственно в DLL маршрутизатора многосетевого доступа (MPR). MPR принимает вызов и определяет, через какой из компонентов сетевого доступа WNet можно осуществить ДОСТУП к данному ресурсу. Все DLL компонентов сетевого доступа , расположенные ниже MPR, предоставляют набор стандартных функций,

Рис. 9-9. Использование нескольких компонентов сетевого доступа.

который называется интерфейсом сетевого доступа, (provider interface). Данный интер­фейс позволяет MPR определить, к какой сети пытается обратиться приложение и направить вызов соответствующему компоненту сетевого доступа WNet.

Когда MPR вызывается для подключения к удаленному сетевому ресурсу функцией API WnetAddConnection(), он просматривает реестр конфигурации, чтобы определить, компоненты доступа для каких сетей загружены. Далее он оп­рашивает их в том порядке, в каком они перечислены в реестре, пока либо один из них не распознает сетевой ресурс, либо все они не будут опрошены (порядок опроса можно также изменить путем редактирования базы данных реестра).

Функция WNetAddConnection() может также назначить букву диска уда­ленному ресурсу. В этом случае она направляет вызов соответствующему постав­щику сети. Тот, в свою очередь, создает объект-символическую связь, который отображает данную букву на редиректор (т. е. на драйвер удаленной файловой системы) для данной сети. На рис. 9-10 показано, как имена сетевых ресурсов вставляются в пространство имен диспетчера объектов NT.

Рис. 9-10. Разрешение имени сетевого ресурса.

Подобно встроенному редиректору, другие редиректоры тоже создают объект-устройство в пространстве имен диспетчера объектов во время своей загрузки и инициализации. Затем, когда WNet или другой API обращается к дис­петчеру объектов для открытия ресурса, расположенного на другой сети, дис­петчер использует объект-устройство как точку входа в удаленную файловую систему. Он вызывает метод разбора диспетчера ввода-вывода, связанный с объектом-устройством, для поиска драйвера файловой системы редиректора, который может обработать данный запрос.

Многосетевой UNC для файлового ввода-вывода Win32

Многосетевой UNC (MUP) — это сетевой компонент, сходный с MPR. Он обрабатывает запро­сы к файлам или устройствам, содержащие имя UNC (это имена, начинающиеся с символов \\, которые указывают, что данный ресурс находится в сети). MUP, подоб­но MPR, определяет, какой локальный редиректор распознает удаленный ресурс.

Рис. 9-11. Многосетевой UNC.

В отличие от MPR, MUP — это драйвер NT (загружаемый при запуске сис­темы), который выдает запросы драйверам нижнего уровня, в данном случае ре­директорам, как показано на рис. 9-11.

Драйвер MUP активизируется, когда приложение пытается открыть уда­ленный файл или устройство, задавая имя UNC (а не переназначенную букву диска, как описывалось выше). Получив подобный запрос, подсис­тема Win32 добавляет переданное в запросе имя к строке \DosDevices\UNC, после чего вызывает для открытия файла диспетчер ввода-вывода. Указанная строка является именем символической связи, которая разрешается в \Device\Mupобъекте-устройстве, представляющем драйвер MUP, как показано на рис. 9-12.

Драйвер MUP принимает данный запрос и асинхронно посылает IRP каж­дому зарегистрированному редиректору. Затем он ждет, пока какой-нибудь из них не распознает имя ресурса и не ответит. Когда редиректор распознает имя, он указывает, какая часть имени для него уникальна. Например, если именем является строка \\HELENC\PUBLIC\insicie\scoop.ctoc, то редиректор Windows NT рас­познает и объявляет своей подстроку \\HELENC\PUBUC. Драйвер MUP кэширует эту информацию и впоследствии посылает имена, начинающиеся с данной подстроки, сразу редиректору Windows NT, пропуская стадию "опроса". Кэш драйвера MUP обладает средством тайм-аута,

Рис. 9-12. Разрешение имени UNC.

так что если строка не используется в течение неко­торого периода времени, то ее связь с данным редиректором удаляется.

Если более одного редиректора признает ресурс своим, то MUP обраща­ется к списку редиректоров в конфигурационном реестре, чтобы определить, какой из них имеет приоритет. Порядок записей в списке редиректоров можно изменить путем редактирования базы данных реестра.

  1. Транспортные протоколы. Среда NDIS для сетевых драйверов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]