Freigeben über


Registrieren eines gehosteten Geräts beim Gerätehost

Das Registrieren eines gehosteten Geräts bedeutet, dem Gerätehost die Gerätebeschreibung und das zugehörige Gerätesteuerungsobjekt bereitzustellen. Der Gerätehost erstellt dann eine vollständige UPnP-Gerätebeschreibung, veröffentlicht sie und meldet das Gerät im Netzwerk mithilfe des UPnP-Ermittlungsprotokolls. Sobald ein Gerät veröffentlicht wurde, steht es für Kontrollpunkte zur Verfügung.

Geräte werden auf zwei Arten registriert:

  • Eine Anwendung erstellt eine instance des Gerätesteuerungsobjekts und übergibt einen Zeiger an den Gerätehost.
  • Die Anwendung übergibt die ProgID für ein registriertes Gerätesteuerungsobjekt an den Gerätehost. Der Gerätehost instanziiert sie, wenn der Gerätehost die erste Anforderung für das Gerät empfängt.

Unabhängig davon, welche Methode verwendet wird, veröffentlicht und kündigt der Gerätehost das Gerät an, sobald es registriert ist. Der Unterschied zwischen den beiden Ansätzen hat mit dem Laden des Gerätecodes zu tun. Wenn die Anwendung einen Zeiger auf das Gerätesteuerungsobjekt übergibt, wird der Gerätecode geladen und zum Zeitpunkt der Registrierung ausgeführt. Wenn die Anwendung eine ProgID übergibt, wird der Gerätecode nur geladen, wenn eine Aktion aufgerufen, eine Eigenschaft abgefragt wird oder eine Ereignisabonnementanforderung eingeht. Der zweite Ansatz ist etwas effizienter. Es eignet sich jedoch nicht für Geräte, die ausgeführt werden müssen, bevor Anforderungen für Steuerungs- oder Ereignisabonnements eingehen, da bei diesem Ansatz Gerätesteuerungsobjekte nur erstellt werden, wenn sie benötigt werden. Diese zweite Methode kann auch Leistungsprobleme erzeugen, wenn sie die erste Anforderung für einen Gerätetyp empfängt.

Wenn Sie sicherstellen möchten, dass ein Gerät beim Starten des Computers automatisch vom Gerätehost im Netzwerk angekündigt wird, rufen Sie IUPnPRegistrar::RegisterDevice auf. RegisterDevice stellt sicher, dass Ihr Gerätecode nur geladen wird, wenn eine Steuerelement- oder Ereignisabonnementanforderung empfangen wird.

Wenn Ihre Geräte vorübergehend oder überbrückt sind, rufen Sie IUPnPRegistrar::RegisterRunningDevice auf, und das Gerät wird nicht automatisch erneut angekündigt, wenn der Computer neu gestartet wird.

Lebensdauer der Ermittlungsankündigung

Jedem beim Gerätehost registrierten Gerät wird eine Lebensdauer zugeordnet, die vom Gerät bei der Registrierung angegeben wird. Die Lebensdauer des Geräts ist der Zeitraum, für den die Ermittlungsankündigungen des Geräts gültig sind. Die Lebensdauer wird in der ersten Ermittlungsankündigung als Header an den Steuerungspunkt übergeben. Der Gerätehost aktualisiert die Ankündigung automatisch vor der Ablaufzeit. Die Werte der Lebensdauer der Ermittlungsankündigung sollten mindestens 15 Minuten betragen (der Standardwert ist 30 Minuten).

Gerätebezeichner, die bei der Registrierung erstellt wurden

Beim Erstellen einer Gerätebeschreibungsvorlage muss der Geräteentwickler den Ressourcenpfad zur Dienstbeschreibung und den zugehörigen Symbolen angeben. Der Ressourcenpfad wird von der Geräteanwendung bestimmt.

Da dasselbe Gerät mehrmals auf demselben Computer registriert werden kann, reicht der in der Gerätebeschreibungsvorlage angegebene UDN nicht aus, um ein Gerät eindeutig zu identifizieren. Wenn ein Gerät registriert wird, erstellt der Gerätehost daher einen Gerätebezeichner. Dieser Gerätebezeichner kann in Verbindung mit dem UDN in der Gerätebeschreibungsvorlage verwendet werden, um ein Gerät eindeutig zu identifizieren.

Dieser Bezeichner wird auch verwendet, wenn das Gerät vorübergehend die Registrierung aufheben und dann erneut registriert wird. Wenn ein Gerät vorübergehend nicht registriert wird, löscht der Gerätehost den UDN nicht. Gründe für das Nichtlöschen des UDN sind:

  • Das Gerät wird aktualisiert.
  • Sie ändern die Eigenschaften des Geräts.
  • Ein Dienst ist vorübergehend nicht verfügbar.
  • Sie fügen einem Gerät einen neuen Dienst hinzu.
  • Sie aktualisieren die DLL.
  • Das Gerät befindet sich im Bereitschaftsmodus.

Weitere Informationen zur Registrierung finden Sie in den folgenden Abschnitten: