Питер Нортон - Полное руководство по Microsoft Windows XP
• сетевой интерфейс для 32-разрядных приложений (32-bit Network API). Все запросы приложения начинаются с этого модуля. Я не буду подробно рассказывать об API, однако следует отметить, что специалисты Microsoft сделали довольно много в области его реорганизации и упрощения. Пользователи вряд ли заметят эти изменения, разве что в производительности сети, но программисты определенно будут рады. API преобразует запрос приложения в один или несколько стандартизированных сетевых запросов. В создании сетевого интерфейса программирования (Network API) в Windows XP участвует довольно много файлов. Загрузка конкретных файлов зависит от конфигурации вашей сети. Наиболее важными файлами являются NETAPI.DLL и NETAPI32.DLL. Загрузка NETAPI32.DLL влечет за собой загрузку SECUR32.DLL (безопасность), NETRAP.DLL (удаленное администрирование), SAMLIB.DLL (администратор учетных записей), WS2_32.DLL и WSOCK32.DLL (32-разрядный сокет Windows), WLDAP32.DLL (упрощенный протокол доступа к каталогам) и DNSAPI.DLL (сервер доменных имен). Эти файлы обеспечивают большую часть низкоуровневых функций, необходимых для поддержки интерфейса программирования API;
• многопротокольный маршрутизатор (Multiple Provider Router – MPR). Вы наверняка будете использовать не один, а несколько протоколов в Windows XP. В частности (по крайней мере, теоретически), вы должны смешивать и объединять в одной сети драйверы с защищенным режимом. К примеру, вы можете соединить стандартные протоколы передачи данных NetBIOS и IPX/SPX. Кроме того, некоторые протоколы автоматически загружаются при запросе определенной сетевой службы. К этой категории относится протокол управления каналом передачи данных (Data Link Control – DLC), обеспечивающий взаимодействие с мэйнфреймами и сетевыми принтерами.
Для поддержки сетевых протоколов требуются провайдерские службы. Функция многопротокольного маршрутизатора MPR и состоит в том, чтобы принимать сетевые запросы от сетевого интерфейса API и пересылать их соответствующему провайдеру (Network Provider – NP). Определенная часть запроса указывает, к какому провайдеру следует обращаться. Однако некоторые запросы являются общими. К ним относится, например, запрос о статусе всей сети. В данном случае маршрутизатор MPR опрашивает все провайдерские службы по очереди, чтобы выполнить запрос необходимого приложения. Иногда запрос может содержать недостаточно информации для того, чтобы MPR мог определить, какой из провайдеров должен выполнить запрос приложения. В таком случае MPR «опрашивает» всех провайдеров и проверяет, способен ли кто-то из них выполнить запрос. Если ни один из установленных провайдеров не в состоянии сделать это, маршрутизатор MPR выдаст сообщение об ошибке.
Вы увидите, что файлы для поддержки многопротокольного маршрутизатора MPR находятся в файле MPR.DLL каталога SYSTEM32. Файл MPNOTIFY.EXE загружает эту библиотеку во время запуска. Промежуточный файл, MPRUI.DLL, обеспечивает поддержку пользовательского интерфейса. Библиотека содержит диалоговые окна, которыми вы пользуетесь при подключении или отключении сетевого диска;
• провайдерская сетевая служба (NP). Провайдерская сетевая служба выполняет все запрашиваемые приложением функции, связанные с протоколами. Она устанавливает и разрывает соединения, выдает информацию о статусе сети и обеспечивает совместимый интерфейс для маршрутизаторов MPR. Приложение никогда не обращается к провайдерской службе, поскольку эту задачу решает исключительно многопротокольный маршрутизатор MPR. Несмотря на то что внутренняя структура провайдерской службы может быть различной, это не относится к предоставляемому ею интерфейсу. Данный механизм помогает Windows XP поддерживать сразу несколько протоколов. Код, используемый многопротокольным маршрутизатором MPR, может оставаться компактным и быстро исполняется, обеспечивая оптимальный трафик, поскольку не требуется специального обращения ни к одной из провайдерских служб. В случае, если провайдерская служба не способна выполнить запрос из-за ограничений в сетевом протоколе, она сообщает маршрутизатору MPR, что запрашиваемая служба недоступна. Провайдерскую службу также обновляет администратор файловой системы в статусе соединения. Таким образом программа Проводник узнает, что вы осуществили новое подключение;
• администратор файловой системы (Installable File System Manager – IFS). Когда IFS получает информацию об изменении статуса от провайдерской службы, он вызывает драйвер файловой системы сети FSD, чтобы обновить файл и другую системную информацию. Когда, например, провайдерская служба сообщает администратору файловой системы IFS об установке нового соединения, IFS запрашивает у FSD перечень файлов каталога. То же относится и к другим типам сетевых ресурсов, таким как принтеры. Помимо этого IFS выполняет свои обычные функции открытия файлов и управления запросами файловой системы. Многопротокольный маршрутизатор MPR «не знает», что делать с именем пути, поэтому передает подобные запросы через провайдерскую службу администратору файловой системы IFS для выполнения. Конечно, приложения могут получить доступ к IFS и другими способами. Маршрутизатор MPR оказывается задействованным только в случае, если специфические сетевые запросы требуют его вмешательства;
• модуль драйверов файловых систем сети (File System Driver – FSD). Каждый сервер в сети может использовать уникальную файловую систему. NetWare и другие сети с архитектурой клиент-сервер применяют специальные файловые системы, которые способствуют повышению производительности, безопасности, надежности и объема выделяемой памяти. Windows XP не обладает исходными знаниями о потребностях таких запоминающих систем. Чтобы сохранить совместимость в режиме доступа (consistency of access), в Windows XP существует транслятор для всех обращений к сети. Эту задачу выполняет модуль драйверов файловых систем сети FSD. Он преобразует непонятный код незнакомой файловой системы в код, распознаваемый Windows XP. Модуль FSD обычно состоит из специальных драйверов файловых систем и драйверов переадресации. Второй файл интерпретирует спецификации файловой системы для Windows XP. Обычно каждая провайдерская служба имеет один драйвер файловой системы сети FSD. Тем не менее это ограничение не является обязательным. Провайдерской службе может потребоваться доступ и к драйверу файловой системы FAT, и к драйверу файловой системы NTFS для сервера операционной системы Windows XP. В данном случае при установке средств сетевой поддержки Windows XP инсталлирует оба драйвера. Администратор файловой системы IFS также обращается к модулю FSD за поддержкой. Хотя провайдерская служба обычно запрашивает статус сети или информацию о соединении, администратор IFS удовлетворяет потребности приложений, такие как открытие файлов и чтение их содержимого. Два этих модуля, провайдерская служба и администратор файловой системы IFS, работают в тандеме, причем каждый из них играет совершенно отличную от другого роль;...Примечание
У вас, вероятно, возник вопрос, почему Microsoft не объединила провайдерскую службу и администратора файловой системы IFS в одном модуле. В конце концов, из моих предыдущих комментариев могло показаться, что IFS представляет собой всего лишь часть стратегии доступа для сетевых дисков. Однако IFS работает как с локальными, так и с сетевыми дисками. Для каждого из них может существовать отдельная файловая система. Файловая система IFS предназначена для того, чтобы поддерживать связь новых и неизвестных файловых систем с Windows XP. Следовательно, подобная двойная структура имеет смысл. IFS обеспечивает доступ к любому драйверу файловой системы. В свою очередь, Windows XP способна установить связь с любой файловой системой, для которой существует соответствующий драйвер. Объединение файловой системы IFS с единственным драйвером файловой системы FSD привело бы к уменьшению гибкости из-за привязки Windows XP к одной файловой системе. Также следует отметить, что в качестве драйверов система использует несколько сетевых компонентов. Таким образом, она получает доступ к локальным и удаленным ресурсам с помощью одного и того же общего компонента.
• сетевой транспорт. На рис. 21.1 я представил эту часть в виде одного модуля. В действительности данный модуль включает в себя множество небольших модулей и драйверов. Количество компонентов зависит от сложности вашей транспортной схемы и требований протокола. В состав транспортного сегмента входят четыре элемента: интерфейс транспортного драйвера (Transport Driver Interface – TDI), транспортный протокол (Transport Protocol), стецификация стандартного интерфейса сетевых адаптеров (Network Device Interface Specification – NDIS) и драйвер сетевого адаптера;
• драйвер платы сетевого интерфейса, драйвер сетевого адаптера (Network Interface Card Driver – NIC Driver). Я не зря останавливаюсь на этом компоненте Windows XP. Данный драйвер является аппаратно-зависимым и должен быть связан с платой сетевого интерфейса на уровне, понятном для нее. Каждый сетевой адаптер может иметь один драйвер, и это условие представляет собой проблему, особенно при смене адаптера. Я сталкивался с ситуациями, когда, думая, что удалил старый драйвер, и установив новый для поддержки нового сетевого адаптера, я обнаруживал остатки прежнего. В случае, если новый драйвер попытается получить доступ к файлу по причине сходного имени или неправильной адресации в регистре, сетевые обращения могут не достичь цели. Выходом, конечно, является полное удаление старого драйвера. Удалите его из папки Сетевые подключения (Network Connections) на панели управления, а затем перезагрузите компьютер, чтобы обеспечить полное удаление соответствующих записей в системном реестре.