Freigeben über


IWSDiscoveryPublisher::P ublish-Methode (wsddisco.h)

Gibt das Vorhandensein eines Netzwerkhosts an, indem eine Hello-Nachricht gesendet wird.

Syntax

HRESULT Publish(
  [in]           LPCWSTR             pszId,
  [in]           ULONGLONG           ullMetadataVersion,
  [in]           ULONGLONG           ullInstanceId,
  [in]           ULONGLONG           ullMessageNumber,
  [in, optional] LPCWSTR             pszSessionId,
  [in, optional] const WSD_NAME_LIST *pTypesList,
  [in, optional] const WSD_URI_LIST  *pScopesList,
  [in, optional] const WSD_URI_LIST  *pXAddrsList
);

Parameter

[in] pszId

Die logische oder physische Adresse des Geräts, die als Geräteendpunktadresse verwendet wird. Eine logische Adresse hat das Format urn:uuid:{guid}. Eine physische Adresse kann ein URI mit dem Präfix "http" oder "https" oder einfach ein URI mit dem Präfix sein uri. Verwenden Sie nach Möglichkeit eine logische Adresse.

[in] ullMetadataVersion

Aktuelle Metadatenversion.

Hinweis Für die Kompatibilität mit der WS-Discovery-Spezifikation muss dieser Wert kleiner oder gleich UINT_MAX (4294967295) sein.
 

[in] ullInstanceId

Bezeichner für den aktuellen instance des zu veröffentlichenden Geräts. Dieser Bezeichner muss bei jedem Neustart des Diensts erhöht werden. Weitere Informationen zu instance Bezeichnern finden Sie in Anhang I der WS-Discovery-Spezifikation.

Hinweis Für die Kompatibilität mit der WS-Discovery-Spezifikation muss dieser Wert kleiner oder gleich UINT_MAX (4294967295) sein.
 

[in] ullMessageNumber

Leistungsindikator innerhalb des Bereichs des instance Bezeichners für die aktuelle Nachricht. Die Nachrichtennummer muss für jede Nachricht erhöht werden.

Hinweis Für die Kompatibilität mit der WS-Discovery-Spezifikation muss dieser Wert kleiner oder gleich UINT_MAX (4294967295) sein.
 

[in, optional] pszSessionId

Eindeutiger Bezeichner im Bereich des instance Bezeichners für die aktuelle Sitzung. Dieser Parameter entspricht dem Sequenzbezeichner im AppSequence-Block in der Testnachricht. Weitere Informationen zu Sequenzbezeichnern finden Sie in Anhang I der WS-Discovery-Spezifikation.

Dieser Parameter kann NULL sein.

[in, optional] pTypesList

Zeiger auf eine WSD_NAME_LIST-Struktur , die die Liste der vom Veröffentlichungshost unterstützten Typen darstellt. Kann NULL sein.

[in, optional] pScopesList

Zeiger auf eine WSD_URI_LIST-Struktur , die die Liste der übereinstimmenden Bereiche darstellt, die vom Veröffentlichungshost unterstützt werden. Die Liste enthält Hashwerte in Zeichenfolgenform. Kann NULL sein.

[in, optional] pXAddrsList

Zeiger auf eine WSD_URI_LIST-Struktur , die die Liste der vom Veröffentlichungshost unterstützten Transportadressen darstellt. Jede Transportadressenzeichenfolge enthält eine Adresse und portnummer, die für die Verbindung von einem Remotehost verwendet werden kann. Kann NULL sein.

Rückgabewert

Mögliche Rückgabewerte sind unter anderem folgendes:

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
E_INVALIDARG
Mindestens eine der folgenden Bedingungen ist erfüllt:
  • pszId ist NULL.
  • Die Länge in Zeichen von pszId überschreitet WSD_MAX_TEXT_LENGTH (8192).
  • Die Länge in Zeichen von pszSessionId überschreitet WSD_MAX_TEXT_LENGTH (8192).
HRESULT_FROM_WIN32(ERROR_NO_CALLBACK_ACTIVE)
Es gibt keine registrierte Benachrichtigungssenke. Um eine Senke anzufügen, rufen Sie RegisterNotificationSink auf.
E_ABORT
Der Herausgeber wurde nicht gestartet. Das Anfügen einer Benachrichtigungssenke startet den Herausgeber. Um eine Senke anzufügen, rufen Sie RegisterNotificationSink auf.
E_OUTOFMEMORY
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen.

Hinweise

Bei erfolgreicher Ausführung sendet Publish eine WS-Discovery Hello-Nachricht mit den bereitgestellten Informationen an das lokale Subnetz.

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 wsddisco.h (einschließen von Wsdapi.h)
DLL Wsdapi.dll

Weitere Informationen

IWSDiscoveryPublisher