Установка сетевых компонентов
Сетевые компоненты устанавливаются подсистемой конфигурации сети.
Чтобы создать пакет драйвера с объектом уведомления, который выполняется из хранилища драйверов, необходимо иметь минимальный номер сборки ОС 25341. В этом сценарии невозможно установить пакет драйверов в более ранних версиях Windows.
Установка сетевого компонента
Подсистема конфигурации сети вызывает установщик класса для конкретного типа компонента. Затем установщик класса вызывает API установки для получения сведений из INF-файла компонента и установки компонента.
Если компонент является владельцем объекта уведомления, установщик класса получает имя библиотеки DLL, в которую размещен объект notify. Эта библиотека DLL отображается в INF-файле компонента следующим образом:
HKR, Ndi, ComponentDll, 0, "notifyobject.dll"
Установщик класса вызывает функцию точки входа библиотеки DLL для регистрации объекта notify. Подсистема конфигурации сети создает экземпляр объекта notify и вызывает метод INetCfgComponentControl::Initialize объекта. Этот метод инициализирует объект и предоставляет доступ к компоненту и всем аспектам конфигурации сети.
Для выполнения операций, необходимых для установки компонента, подсистема конфигурации сети вызывает метод INetCfgComponentSetup::Install объекта уведомления.
Если установка компонента выполняется автоматически, подсистема конфигурации сети вызывает метод INetCfgComponentSetup объекта notify::ReadAnswerFile . Этот метод открывает и извлекает параметры компонента из файла автоматической установки, известного как файл ответов.
После того как подсистема конфигурации сети создает экземпляр и инициализирует объект notify, подсистема вызывает метод INetCfgComponentNotifyGlobal::GetSupportedNotifications объекта notify для получения типов уведомлений, необходимых объекту. Подсистема использует эти сведения для отправки необходимых уведомлений в объект . Объект может использовать эти уведомления для управления аспектами настройки и конфигурации сети, которые могут повлиять на компонент, которому принадлежит объект. Например, если подсистема вызывает метод INetCfgComponentNotifyGlobal::SysNotifyComponent для уведомления объекта о том, что подсистема установила или удалила другой сетевой компонент, объект имеет возможность выполнять операции, связанные с изменением.
После того как подсистема конфигурации сети создает экземпляр и инициализирует объект уведомления, подсистема также вызывает любой из методов интерфейса INetCfgComponentNotifyBinding объекта уведомления, чтобы уведомить объект об изменениях в способе привязки подсистемой других сетевых компонентов к компоненту, которому принадлежит объект notify.
Когда подсистема конфигурации сети будет готова применить свойства компонента к операционной системе, она вызывает метод INetCfgComponentControl::ApplyRegistryChanges объекта notify для назначения параметров компонента в разделе реестра компонента. Объект notify вызывает метод INetCfgComponent::OpenParamKey своего компонента, чтобы открыть и получить раздел реестра компонента.
Чтобы настроить драйвер компонента, подсистема конфигурации сети вызывает метод INetCfgComponentControl::ApplyPnpChanges объекта уведомления и передает интерфейс INetCfgPnpReconfigCallback . Объект notify вызывает метод INetCfgPnpReconfigCallback::SendPnpReconfig для отправки сведений о конфигурации в драйвер компонента.
Дополнительные сведения об API установки и файлах для автоматической установки см. в Microsoft Windows SDK.