IWSDDeviceHost-Schnittstelle (wsdhost.h)

Stellt ein DPWS-kompatibles Gerät dar. Der Gerätehost meldet seine Anwesenheit im Netzwerk mithilfe des WS-Discovery-Protokolls. Der Gerätehost reagiert auch automatisch auf Ermittlungsabfragen und Metadatenanforderungen.

Der Aufrufer kann vom Benutzer implementierte Dienste beim Gerätehost registrieren. Diese Dienste werden in den Gerätemetadaten verfügbar gemacht, und die Dienste sind über das Netzwerk verfügbar. Nachrichten, die für diese Dienste gebunden sind, werden automatisch an das Dienstobjekt gesendet.

Rufen Sie WSDCreateDeviceHost oder WSDCreateDeviceHostAdvanced auf, um ein Objekt zu erstellen, das diese Schnittstelle verfügbar macht.

Vererbung

Die IWSDDeviceHost-Schnittstelle erbt von der IUnknown-Schnittstelle . IWSDDeviceHost verfügt auch über folgende Arten von Membern:

Methoden

Die IWSDDeviceHost-Schnittstelle verfügt über diese Methoden.

 
IWSDDeviceHost::AddDynamicService

Registriert ein Dienstobjekt für eingehende Anforderungen, fügt den Dienst jedoch nicht den Gerätehostmetadaten hinzu. Dies wird für vorübergehende (dynamische) Dienste verwendet.
IWSDDeviceHost::Init

Initialisiert eine instance eines IWSDDeviceHost-Objekts.
IWSDDeviceHost::RegisterPortType

Registriert einen Porttyp für eingehende Nachrichten.
IWSDDeviceHost::RegisterService

Registriert ein Dienstobjekt für eingehende Anforderungen und fügt den Dienst den Gerätehostmetadaten hinzu.
IWSDDeviceHost::RemoveDynamicService

Hebt die Registrierung eines Dienstobjekts auf, das mit AddDynamicService registriert wurde.
IWSDDeviceHost::RetireService

Hebt die Registrierung eines Dienstobjekts auf, das mit RegisterService registriert wurde, und entfernt den Dienst aus den Gerätehostmetadaten.
IWSDDeviceHost::SetMetadata

Legt die Metadaten für ein Gerät fest, ohne benutzerdefinierte Dienstmetadaten.
IWSDDeviceHost::SetServiceDiscoverable

Steuert, ob der Dienst mit WS-Discovery angekündigt wird oder nicht.
IWSDDeviceHost::SignalEvent

Benachrichtigt alle abonnierten Clients, dass ein Ereignis aufgetreten ist.
IWSDDeviceHost::Start

Startet den Gerätehost und veröffentlicht den Gerätehost mithilfe einer WS-Discovery Hello-Nachricht.
IWSDDeviceHost::Stop

Sendet eine WS-Discovery Bye-Nachricht und beendet den Host.
IWSDDeviceHost::Terminate

Beendet den Host und gibt alle angefügten Dienste frei.

Hinweise

Nach dem Abrufen dieser Schnittstelle würde die Anwendung folgendes ausführen:

  1. Rufen Sie die RegisterPortType-Methode auf, um alle erforderlichen Porttypen zu registrieren.
  2. Rufen Sie SetMetadata auf, um das Gerät zu beschreiben, und rufen Sie optional RegisterService ein oder mehrmals auf, um dienste zu registrieren, die in den Diensthostmetadaten beschrieben sind.
  3. Rufen Sie die Startmethode auf, um den Gerätehost zu starten und das Gerät mithilfe von WS-Discovery zu veröffentlichen.Nach dem Starten des Gerätehosts können Sie optional Folgendes ausführen:
    1. Rufen Sie AddDynamicService für Dienste auf, die nicht in den Diensthostmetadaten beschrieben sind (z. B. ein Ad-hoc-Druckauftrag).
    2. Rufen Sie RetireService auf, um die Aktion für einen von der RegisterService-Methode aktivierten Dienst zu beenden und zu trennen.
    3. Rufen Sie die SignalEvent-Methode auf, um anzugeben, dass Benachrichtigungen für Abonnements gesendet werden sollen, die sich auf ein bestimmtes Ereignis beziehen.
  4. Rufen Sie die Stop-Methode auf, um die Hostausführung zu beenden und die Veröffentlichung des Geräts zu beenden.

Ein IWSDDeviceHost-Objekt kann ein Objekt für einen Dienst bei Bedarf (mithilfe eines Benachrichtigungsrückrufs) bereitstellen, wenn der Aufruf des Hosts eine Anforderungsnachricht empfängt, die an diesen Dienst gerichtet ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wsdhost.h (include Wsdapi.h)

Weitere Informationen

Übersicht über die WSDAPI-Schnittstellen