安装网络组件

网络组件由网络配置子系统安装。

若要使用从驱动程序存储执行的通知对象创建 驱动程序包,必须具有最小 OS 内部版本号 25341。 在此方案中,无法在较旧版本的 Windows 上成功安装驱动程序包。

安装网络组件

  1. 网络配置子系统调用特定组件类型的类安装程序。 然后,类安装程序调用安装程序 API 以从组件的 INF 文件中检索信息并安装组件。

    如果组件拥有 notify 对象,则类安装程序将检索包含 notify 对象的 DLL 的名称。 此 DLL 显示在组件的 INF 文件中,如下所示:

    HKR, Ndi, ComponentDll,     0,     "notifyobject.dll"
    

    类安装程序调用 DLL 的入口点函数来注册通知对象。 网络配置子系统创建 notify 对象的实例,并调用对象的 INetCfgComponentControl::Initialize 方法。 此方法初始化 对象,并提供对组件和网络配置的所有方面的访问。

  2. 为了执行安装组件所需的操作,网络配置子系统调用 notify 对象的 INetCfgComponentSetup::Install 方法。

    如果组件安装是无人参与的,则网络配置子系统会调用 notify 对象的 INetCfgComponentSetup::ReadAnswerFile 方法。 此方法打开,并从无人参与安装程序的文件中检索组件参数,该文件称为 应答文件

  3. 网络配置子系统创建 实例并初始化 notify 对象后,子系统调用 notify 对象的 INetCfgComponentNotifyGlobal::GetSupportedNotifications 方法,以检索对象所需的通知类型。 子系统使用此信息向 对象发送所需的通知。 对象可以使用这些通知来控制可能影响拥有对象的组件的网络设置和配置的各个方面。 例如,如果子系统调用 INetCfgComponentNotifyGlobal::SysNotifyComponent 方法以通知对象子系统已安装或删除了另一个网络组件,则对象有机会执行与更改相关的操作。

    网络配置子系统创建 实例并初始化 notify 对象后,子系统还会调用 notify 对象的 INetCfgComponentNotifyBinding 接口的任何方法,以通知对象子系统将其他网络组件绑定到拥有通知对象的组件的方式发生更改。

  4. 当网络配置子系统准备好将组件的属性应用于操作系统时,它会调用 notify 对象的 INetCfgComponentControl::ApplyRegistryChanges 方法,以在组件的注册表项下分配组件的参数。 notify 对象调用其组件的 INetCfgComponent::OpenParamKey 方法来打开并检索组件的注册表项。

  5. 为了配置组件的驱动程序,网络配置子系统调用 notify 对象的 INetCfgComponentControl::ApplyPnpChanges 方法并传递 INetCfgPnpReconfigCallback 接口。 notify 对象调用 INetCfgPnpReconfigCallback::SendPnpReconfig 方法,以将配置信息发送到其组件的驱动程序。

有关安装 API 和无人参与安装的文件的详细信息,请参阅 Microsoft Windows SDK。