Installieren von Netzwerkkomponenten
Netzwerkkomponenten werden vom Netzwerkkonfigurationssubsystem installiert.
Zum Erstellen eines Treiberpakets mit einem Notify-Objekt, das aus dem Treiberspeicher ausgeführt wird, benötigen Sie eine Mindestbuildnummer des Betriebssystems 25341. In diesem Szenario kann ein Treiberpaket unter älteren Windows-Versionen nicht erfolgreich installiert werden.
So installieren Sie eine Netzwerkkomponente
Das Netzwerkkonfigurationssubsystem ruft das Klasseninstallationsprogramm für den jeweiligen Komponententyp auf. Das Klasseninstallationsprogramm ruft dann die Setup-API auf, um Informationen aus der INF-Datei der Komponente abzurufen und die Komponente zu installieren.
Wenn die Komponente ein Notify-Objekt besitzt, ruft das Klasseninstallationsprogramm den Namen der DLL ab, die das Notify-Objekt enthält. Diese DLL wird in der INF-Datei der Komponente wie folgt angezeigt:
HKR, Ndi, ComponentDll, 0, "notifyobject.dll"
Das Klasseninstallationsprogramm ruft die Einstiegspunktfunktion der DLL auf, um das Notify-Objekt zu registrieren. Das Netzwerkkonfigurationssubsystem erstellt eine instance des Notify-Objekts und ruft die INetCfgComponentControl::Initialize-Methode des Objekts auf. Diese Methode initialisiert das -Objekt und bietet Zugriff auf die Komponente und alle Aspekte der Netzwerkkonfiguration.
Um Vorgänge auszuführen, die für die Installation der Komponente erforderlich sind, ruft das Netzwerkkonfigurationssubsystem die INetCfgComponentSetup::Install-Methode des Notify-Objekts auf.
Wenn die Installation der Komponente unbeaufsichtigt erfolgt, ruft das Netzwerkkonfigurationssubsystem die INetCfgComponentSetup::ReadAnswerFile-Methode des Notify-Objekts auf. Diese Methode wird geöffnet und ruft die Parameter der Komponente aus einer Datei für das unbeaufsichtigte Setup ab, das als Antwortdatei bezeichnet wird.
Nachdem das Netzwerkkonfigurationssubsystem eine instance des Notify-Objekts erstellt und initialisiert, ruft das Subsystem die INetCfgComponentNotifyGlobal::GetSupportedNotifications-Methode des Notify-Objekts auf, um die typen von Benachrichtigungen abzurufen, die für das Objekt erforderlich sind. Das Subsystem verwendet diese Informationen, um erforderliche Benachrichtigungen an das Objekt zu senden. Das -Objekt kann diese Benachrichtigungen verwenden, um Aspekte der Netzwerkeinrichtung und -konfiguration zu steuern, die sich auf die Komponente auswirken können, die das Objekt besitzt. Wenn das Subsystem beispielsweise die INetCfgComponentNotifyGlobal::SysNotifyComponent-Methode aufruft, um das Objekt zu benachrichtigen, dass das Subsystem eine andere Netzwerkkomponente installiert oder entfernt hat, hat das Objekt die Möglichkeit, Vorgänge im Zusammenhang mit der Änderung auszuführen.
Nachdem das Netzwerkkonfigurationssubsystem eine instance des Notify-Objekts erstellt und initialisiert, ruft das Subsystem auch eine der Methoden der INetCfgComponentNotifyBinding-Schnittstelle des Notify-Objekts auf, um das Objekt über Änderungen an der Bindung anderer Netzwerkkomponenten an die Komponente zu benachrichtigen, die das Notify-Objekt besitzt.
Wenn das Netzwerkkonfigurationssubsystem bereit ist, die Eigenschaften der Komponente auf das Betriebssystem anzuwenden, ruft es die INetCfgComponentControl::ApplyRegistryChanges-Methode des Notify-Objekts auf, um die Parameter der Komponente unter dem Registrierungsschlüssel der Komponente zuzuweisen. Das Notify-Objekt ruft die INetCfgComponent::OpenParamKey-Methode seiner Komponente auf, um den Registrierungsschlüssel der Komponente zu öffnen und abzurufen.
Zum Konfigurieren des Treibers der Komponente ruft das Netzwerkkonfigurationssubsystem die INetCfgComponentControl::ApplyPnpChanges-Methode des Notify-Objekts auf und übergibt die INetCfgPnpReconfigCallback-Schnittstelle . Das Notify-Objekt ruft die INetCfgPnpReconfigCallback::SendPnpReconfig-Methode auf, um Konfigurationsinformationen an den Treiber der Komponente zu senden.
Weitere Informationen zur Setup-API und zu Dateien für das unbeaufsichtigte Setup finden Sie im Microsoft Windows SDK.