共用方式為


IWSDiscoveryPublisher::MatchResolve 方法 (wsddisco.h)

判斷 Resolve 訊息是否符合指定的主機,並在進行比對時傳送 WS-Discovery ResolveMatches 訊息。

語法

HRESULT MatchResolve(
  [in]           const WSD_SOAP_MESSAGE *pResolveMessage,
  [in]           IWSDMessageParameters  *pMessageParameters,
  [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] pResolveMessage

WSD_SOAP_MESSAGE 結構的指標,表示傳入通知接收之 ResolveHandler 的 Resolve 訊息。

[in] pMessageParameters

IWSDMessageParameters 物件的指標,代表傳入通知接收的 ResolveHandler 傳輸參數。

[in] pszId

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

[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。 如果指定 pTypesList,MatchResolve 將會使用 WS-Discovery 比對邏輯來確認類型符合 pResolveMessage 中指定的類型。

[in, optional] pScopesList

WSD_URI_LIST 結構的指標,代表發佈主機所支援之相符範圍的清單。 此清單包含字串格式的哈希值。 可能是 NULL。 如果指定 pScopesList,MatchResolve 將會使用 WS-Discovery 比對邏輯來確認範圍符合 pResolveMessage 中指定的範圍。

[in, optional] pXAddrsList

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

傳回值

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

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

備註

只有在探索發行者發出 ResolveHandler 回呼時,才應該呼叫 MatchResolvepResolveMessagepMessageParameters 會直接從回呼傳遞至 MatchResolveResolveHandler 也會傳遞發行者所需的資訊,以判斷提供的 Resolve 訊息是否符合,如果是的話,則發出 ResolveMatches 回應。

MatchResolve 會在所有系結配接器上傳送 ResolveMatches 訊息,並在 WS-Discovery 需要時自動發出訊息重新傳輸。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 wsddisco.h (包含 Wsdapi.h)
Dll Wsdapi.dll

另請參閱

IWSDiscoveryPublisher