IUPnPRegistrar::RegisterRunningDevice-Methode (upnphost.h)

Die RegisterRunningDevice-Methode registriert ein ausgeführtes Gerät beim Gerätehost. Die Geräteinformationen werden vom Gerätehost gespeichert. Anschließend gibt der Gerätehost eine Geräte-ID zurück und veröffentlicht und kündigt das Gerät im Netzwerk an. Die Veröffentlichung dieses Geräts wird nicht über Systemboote hinweg beibehalten.

Syntax

HRESULT RegisterRunningDevice(
  [in]  BSTR     bstrXMLDesc,
  [in]  IUnknown *punkDeviceControl,
  [in]  BSTR     bstrInitString,
  [in]  BSTR     bstrResourcePath,
  [in]  long     nLifeTime,
  [out] BSTR     *pbstrDeviceIdentifier
);

Parameter

[in] bstrXMLDesc

Gibt die XML-Gerätebeschreibungsvorlage des zu registrierenden Geräts an.

[in] punkDeviceControl

Gibt den IUnknown-Zeiger auf das Gerätesteuerungsobjekt des Geräts an.

[in] bstrInitString

Identifiziert die für das Gerät spezifische Initialisierungszeichenfolge. Diese Zeichenfolge wird später an IUPnPDeviceControl::Initialize übergeben.

[in] bstrResourcePath

Gibt den Speicherort des Ressourcenverzeichnisses des Geräts an. Dieses Ressourcenverzeichnis enthält die Symboldateien und Dienstbeschreibungen, die in der Gerätebeschreibungsvorlage bstrXMLDesc angegeben sind.

[in] nLifeTime

Gibt die Lebensdauer der Geräteankündigung in Sekunden an. Nach Ablauf des Timeouts werden die Ankündigungen aktualisiert. Wenn Sie null angeben, wird der Standardwert 1800 (30 Minuten) verwendet. Der zulässige Mindestwert beträgt 900 (15 Minuten); Wenn Sie etwas kleiner als 900 angeben, wird ein Fehler zurückgegeben.

[out] pbstrDeviceIdentifier

Empfängt den Gerätebezeichner. Verwenden Sie diesen Bezeichner, wenn Sie die Registrierung des Geräts aufheben oder erneut registrieren. Speichern Sie diese Geräte-ID. sie müssen beim Aufrufen von UnregisterDevice verwendet werden.

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls gibt die Methode einen der in WinError.h definierten COM-Fehlercodes oder einen der folgenden UPnP-spezifischen Fehlercodes zurück.

Hinweis Wenn bstrResourcePath zu lang ist, gibt diese Methode den Wert 0x80070002 zurück.
 
Rückgabecode Beschreibung
UPNP_E_DUPLICATE_NOT_ALLOWED
Ein doppeltes Element ist vorhanden.
UPNP_E_DUPLICATE_SERVICE_ID
Eine doppelte Dienst-ID für einen Dienst innerhalb desselben übergeordneten Geräts ist vorhanden.
UPNP_E_INVALID_DESCRIPTION
Die Gerätebeschreibung ist ungültig.
UPNP_E_INVALID_ICON
Im Symbolelement der Gerätebeschreibung ist ein Fehler vorhanden.
UPNP_E_INVALID_SERVICE
In einem Dienstelement in der Gerätebeschreibung ist ein Fehler vorhanden.
UPNP_E_REQUIRED_ELEMENT_ERROR
Ein erforderliches Element fehlt.

Hinweise

Der Client, der diese Methode aufruft, muss die Identität von LocalService annehmen können, um die Verarbeitung dieser Methode abzuschließen.

Die IUPnPDeviceControl::Initialize-Methode wird aufgerufen, wenn die erste Steuerelement- oder Ereignisanforderung empfangen wird.

Verwenden Sie den in pbstrDeviceIdentifier zurückgegebenen Bezeichner, wenn Sie UnregisterDevice oder IUPnPReregistrar::ReregisterRunningDevice aufrufen.

Die Registrierung dieses Geräts wird nicht über Systemboote hinweg beibehalten.

Häufige Fehler, die beim Aufrufen dieser Funktion auftreten können, sind:

  • Das erforderliche COM-Objekt wurde nicht gefunden.
  • Es gibt keinen Zugriff auf das COM-Objekt für LocalService.
  • Untergeordnete COM-Schnittstellen.
  • Die XML-Beschreibungsgrenzwerte (siehe Erstellen einer Gerätebeschreibung).
  • Ereignisvariablen haben keine Erfolgscodes zurückgegeben, und das Gerät wurde heruntergefahren.
  • Die Dienstbeschreibung war ungültig. Verwenden Sie validatesd.exe, um sicherzustellen, dass Dienstbeschreibungen gültig sind.
  • Der Dienst hat IUPnPEventSource nicht implementiert und keinen Erfolgscode an IUPnPEventSource::Advise zurückgegeben, und das Gerät wurde heruntergefahren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Nicht unterstützt
Zielplattform Windows
Kopfzeile upnphost.h
DLL Upnphost.dll

Weitere Informationen

IUPnPRegistrar

IUPnPRegistrar::UnregisterDevice

IUPnPReregistrar