共用方式為


IWSDiscoveryPublisher::P ublish 方法 (wsddisco.h)

藉由傳送 Hello 訊息,宣布網路主機是否存在。

語法

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
);

參數

[in] pszId

裝置的邏輯或實體位址,用來作為裝置端點位址。 邏輯位址格式為 urn:uuid:{guid}。 實體位址可以是前面加上 HTTP 或 HTTPs 的 URI,或只是前面加上 uri的 URI。 盡可能使用邏輯位址。

[in] ullMetadataVersion

目前的元數據版本。

注意 若要與 WS-Discovery 規格相容,此值必須小於或等於 UINT_MAX (4294967295)。
 

[in] ullInstanceId

要發行之裝置目前實例的標識碼。 每當重新啟動服務時,必須遞增此標識符。 如需實例識別碼的詳細資訊,請參閱 WS-Discovery 規格的附錄 I

注意 若要與 WS-Discovery 規格相容,此值必須小於或等於 UINT_MAX (4294967295)。
 

[in] ullMessageNumber

目前訊息之實例標識碼範圍內的計數器。 每個訊息的訊息號碼都必須遞增。

注意 若要與 WS-Discovery 規格相容,此值必須小於或等於 UINT_MAX (4294967295)。
 

[in, optional] pszSessionId

目前會話實例標識碼範圍內的唯一標識符。 此參數會對應至探查訊息中AppSequence區塊中的序列標識碼。 如需序列識別碼的詳細資訊,請參閱 WS-Discovery 規格的附錄 I

此參數可能會 NULL

[in, optional] pTypesList

WSD_NAME_LIST 結構的指標,表示發行主機所支援的類型清單。 可為 NULL

[in, optional] pScopesList

WSD_URI_LIST 結構的指標,代表發行主機所支援的相符範圍清單。 清單包含字串格式的哈希值。 可為 NULL

[in, optional] pXAddrsList

WSD_URI_LIST 結構的指標,表示發佈主機支援的傳輸位址清單。 每個傳輸位址字串都包含位址和埠號碼,可用於遠端主機的連線。 可為 NULL

傳回值

可能的傳回值包括,但不限於下列各項:

傳回碼 描述
S_OK
方法已順利完成。
E_INVALIDARG
下列一或多個條件成立:
  • pszIdNULL
  • pszId 字元的長度超過 WSD_MAX_TEXT_LENGTH (8192)。
  • pszSessionId 字元的長度超過 WSD_MAX_TEXT_LENGTH (8192)。
HRESULT_FROM_WIN32(ERROR_NO_CALLBACK_ACTIVE)
沒有已註冊的通知接收。 若要附加接收,請呼叫 RegisterNotificationSink
E_ABORT
發行者尚未啟動。 附加通知接收會啟動發行者。 若要附加接收,請呼叫 RegisterNotificationSink
E_OUTOFMEMORY
記憶體不足,無法完成作業。

言論

如果成功,發佈 會將 WS-Discovery Hello 訊息傳送至具有所提供資訊的本機子網。

要求

要求 價值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wsddisco.h (包括 Wsdapi.h)
DLL Wsdapi.dll

另請參閱

IWSDiscoveryPublisher