Связь между сетевыми программными компонентами
В Windows NT различные сетевые программные компоненты связаны в определенной логической иерархии. Например, каждый драйвер транспорта может быть связан с одним или более сетевым адаптером через соответствующие драйверы сетевых карт. Сетевые компоненты более высокого уровня, такие как редиректор, могут быть связаны с одним или несколькими драйверами транспорта.
При установке сетевых компонентов информация о них записывается в реестр Windows NT, который описывает порядок, в котором сетевые компоненты должны загружаться, и как они должны быть связаны друг с другом. Приложением, которое управляет установкой и связыванием сетевых компонентов, является Network Control Panel Application (NCPA).
При установке сетевого компонента NCPA ищет специальный файл с расширением .inf в разделе, определенном пользователем. Если устанавливаемый сетевой драйвер не поставляется вместе с Windows NT, то разработчик этого драйвера должен поставлять файл oemsetup.inf, содержащий сценарий и правила установки драйвера.
После компиляции и исполнения.inf файла NCPA проводит анализ того, как данная сетевая компонента должна быть связана с другими компонентами, используя правила RawRules и NetRules.
RawRules – правила по умолчанию, определяемые системой, и хранимые в реестре в ключе HKEY_LOCAL_ MACHINE \ SOFTWARE \ Microsoft \ Ncpa \ CurrentVersion \ RawRules.
Правила NetRules – правила, определяемые разработчиками, и специфичные для данной компоненты, они содержатся в только что созданном при установке сетевой компоненты ключе HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ <имя сетевой компоненты> \ CurrentVersion \ NetRules.
В конце этого процесса NCPA создаст (или обновит) ключ HKEY_LOCAL_ MACHINE \ SYSTEM \ CurrentControlSet \ Services \ <имя сетевой компоненты> \ Linkage.
NCPA включает следующие поля в этот ключ:
- Bind. Список имен устройств сетевых компонент, с которыми данная сетевая компонента будет связана.
- Export. Список имен объектов-устройств, которые будут добавлены в пространство имен объектов Windows NT, чтобы сделать возможным доступ к этой компоненте. Этот список содержит по одному имени объекта-устройства для каждой компоненты, с которой данная компонента будет связана внизу.
- Route. Содержит список строк, где каждая строка показывает точный путь в стеке сетевых компонент.
После того как NCPA создаст все возможные связи, пользователь может, используя диалоговое окно Bindings в NCPA, Посмотреть результирующие привязки и, если необходимо, блокировать (или разрешить) некоторые привязки. Это вызовет удаление (или восстановление) соответствующих значений в поле Bind подключа Linkage выбранной сетевой компоненты.
При загрузке ОС контроллер сервисов использует информацию в реестре для загрузки сетевых компонентов согласно иерархии связей. Во время инициализации сетевой компонент может определить, к каким компонентам более низкого уровня ему нужно привязаться, прочитав из ключа реестра Linkage значения поля Bind.