コンポーネントのインストール、アップグレード、および削除
ネットワーク構成サブシステムがネットワーク コンポーネントをインストール、アップグレード、または削除するときに、コンポーネントの通知オブジェクトも呼び出して、インストール、アップグレード、削除を完了します。 コンポーネントの通知オブジェクトを実装して、コンポーネントが必要とする可能性のある操作を実行できます。 次に例を示します。
仮想 LAN のマルチプレクサーの通知オブジェクトを実装することで、サブシステムがマルチプレクサーをインストールするときに通知オブジェクトがマルチプレクサー プロトコルがバインドする仮想アダプターをインストールするようにできます。
仮想アダプターをインストールするには、通知オブジェクトは、ネットワーク構成の INetCfgClassSetup::Install メソッドを呼び出します。 この呼び出しでは、通知オブジェクトは、インストールする仮想アダプターの識別子を渡します。 通知オブジェクトは、たとえば、 INetCfgComponentNotifyBinding::NotifyBindingPath または INetCfgComponentPropertyUi::ApplyProperties メソッドから INetCfgClassSetup::Install を呼び出すことができます。
仮想アダプターのインストールを完了するには、オペレーティング システムには仮想アダプターの INF ファイルが必要です。 この INF ファイルを確実に見つけられるようにするには、マルチプレクサのインストール時にこの INF ファイルをオペレーティング システムにコピーする必要があります。 詳細については、「INF ファイルのコピー」を参照してください。 このトピックでは、共同インストーラーまたはセットアップ アプリケーションによる CopyINF ディレクティブまたは SetupCopyOEMInf 関数の呼び出しを使用して、INF ファイルをターゲット システムの INF ディレクトリにコピーできることを示します。 ただし、マルチプレクサー (元の INF) の INF ファイルが SetupCopyOEMInf を使用してコピーされる場合は、元の INF がまだ INF ディレクトリにない場合、オペレーティング システムは CopyINF ディレクティブのみを処理するため、仮想アダプターの INF ファイルも SetupCopyOEMInf を使用してコピーする必要があります。
マルチプレクサーの通知オブジェクトは、サブシステムがマルチプレクサーを削除すると、通知オブジェクトがすべての仮想アダプタを削除するように実装できます。 仮想アダプタを削除するために、通知オブジェクトは、ネットワーク構成の INetCfgClassSetup::Install メソッドを呼び出します。 この呼び出しでは、通知オブジェクトは、仮想アダプターの INetCfgComponent インターフェイスへのポインターを渡します。 通知オブジェクトは、たとえば、 INetCfgComponentNotifyBinding::NotifyBindingPath または INetCfgComponentPropertyUi::ApplyProperties メソッドから INetCfgClassSetup::DeInstall を呼び出すことができます。
コンポーネントの通知オブジェクトを、サブシステムがコンポーネントをアップグレードするときに通知オブジェクトがコンポーネントのバインド パスの順序を変更するように実装することができます。 この順序を変更するために、通知オブジェクトの INetCfgComponentSetup::Upgrade メソッドは、 INetCfgComponentBindings::MoveBefore メソッドまたは INetCfgComponentBindings::MoveAfter メソッドを呼び出します。