Поделиться через


Метод IWSDiscoveryPublisher::MatchResolveEx (wsddisco.h)

Определяет, соответствует ли сообщение Resolve указанному узлу, и отправляет WS-Discovery сообщение ResolveMatches с расширенными сведениями, если совпадение выполнено.

Синтаксис

HRESULT MatchResolveEx(
  [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, optional] const WSDXML_ELEMENT   *pHeaderAny,
  [in, optional] const WSDXML_ELEMENT   *pReferenceParameterAny,
  [in, optional] const WSDXML_ELEMENT   *pPolicyAny,
  [in, optional] const WSDXML_ELEMENT   *pEndpointReferenceAny,
  [in, optional] const WSDXML_ELEMENT   *pAny
);

Параметры

[in] pResolveMessage

Указатель на структуру WSD_SOAP_MESSAGE , представляющую сообщение Resolve, переданное в ResolveHandler приемника уведомлений.

[in] pMessageParameters

Указатель на объект IWSDMessageParameters , представляющий параметры передачи, передаваемые в ResolveHandler приемника уведомлений.

[in] pszId

Логический или физический адрес устройства, который используется в качестве адреса конечной точки устройства. Логический адрес имеет вид urn:uuid:{guid}. Физический адрес может быть URI с префиксом http или https или просто URI с префиксом uri. По возможности используйте логический адрес.

[in] ullMetadataVersion

Текущая версия метаданных.

Примечание Для совместимости со спецификацией WS-Discovery это значение должно быть меньше или равно UINT_MAX (4294967295).
 

[in] ullInstanceId

Идентификатор текущего экземпляра публикуемого устройства. Этот идентификатор необходимо увеличивать при каждом перезапуске службы. Дополнительные сведения об идентификаторах экземпляров см. в приложении I спецификации WS-Discovery.

Примечание Для совместимости со спецификацией WS-Discovery это значение должно быть меньше или равно UINT_MAX (4294967295).
 

[in] ullMessageNumber

Счетчик в область идентификатора экземпляра для текущего сообщения. Номер сообщения должен увеличиваться для каждого сообщения.

Примечание Для совместимости со спецификацией WS-Discovery это значение должно быть меньше или равно UINT_MAX (4294967295).
 

[in, optional] pszSessionId

Уникальный идентификатор в область идентификатора экземпляра для текущего сеанса. Этот параметр соответствует идентификатору последовательности в блоке AppSequence в сообщении пробы. Дополнительные сведения об идентификаторах последовательностей см. в приложении I спецификации WS-Discovery.

Этот параметр может иметь значение NULL.

[in, optional] pTypesList

Указатель на структуру WSD_NAME_LIST , представляющую список типов, поддерживаемых узлом публикации. Может иметь значение NULL. Если указан параметр pTypesList , MatchResolveEx будет использовать логику сопоставления WS-Discovery для проверки соответствия типов, указанных в pResolveMessage.

[in, optional] pScopesList

Указатель на структуру WSD_URI_LIST , представляющую список соответствующих областей, поддерживаемых узлом публикации. Список содержит хэш-значения в строковой форме. Может иметь значение NULL. Если указан параметр pScopesList , MatchResolveEx будет использовать WS-Discovery логику сопоставления, чтобы убедиться, что области соответствуют областям, указанным в pResolveMessage.

[in, optional] pXAddrsList

Указатель на структуру WSD_URI_LIST , представляющую список адресов транспорта, поддерживаемых узлом публикации. Каждая строка адреса транспорта содержит адрес и номер порта, которые можно использовать для подключения удаленного узла. PXAddrsList и pXAddrsList-Element> могут не иметь значения NULL.

[in, optional] pHeaderAny

Указатель на структуру WSDXML_ELEMENT , содержащую XML-элемент, который будет вставлен в раздел "ANY" заголовка.

[in, optional] pReferenceParameterAny

Указатель на структуру WSDXML_ELEMENT , содержащую XML-элемент, который будет вставлен в раздел ANY свойств ссылочного параметра.

[in, optional] pPolicyAny

Не используется.

[in, optional] pEndpointReferenceAny

Указатель на структуру WSDXML_ELEMENT , содержащую XML-элемент, который будет вставлен в раздел "ANY" конечной точки.

[in, optional] pAny

Указатель на структуру WSDXML_ELEMENT , содержащую XML-элемент, который будет вставлен в раздел ANY текста сообщения.

Возвращаемое значение

Возможные возвращаемые значения включают, помимо прочего, следующие:

Код возврата Описание
S_OK
Метод завершился успешно.
E_INVALIDARG
Выполняется одно или несколько из следующих условий:
  • pszId имеет значение NULL.
  • Длина символов pszId превышает WSD_MAX_TEXT_LENGTH (8192).
  • Длина символов pszSessionId превышает WSD_MAX_TEXT_LENGTH (8192).
  • pProbeMessage имеет значение NULL.
E_ABORT
Издатель не запущен. Присоединение приемника уведомлений запускает издателя. Чтобы подключить приемник, вызовите RegisterNotificationSink.
E_OUTOFMEMORY
Недостаточно памяти для завершения операции.

Комментарии

Значение MatchResolveEx должно быть только в том случае, если издатель обнаружения выполнил обратный вызов ResolveHandler . pResolveMessage и pMessageParameters передаются непосредственно из обратного вызова в MatchResolveEx. ResolveHandler также передает сведения, необходимые издателю, чтобы определить, совпадает ли предоставленное сообщение Resolve, и, если да, чтобы при необходимости выдать ответ ResolveMatches.

MatchResolveEx отправляет сообщения ResolveMatches на все связанные адаптеры и автоматически выдает повторную передачу сообщений, когда это требуется для WS-Discovery.

Параметры, относящиеся к WSDXML_ELEMENT структурам, можно использовать для расширения содержимого отправляемого сообщения ResolveMatches с помощью пользовательских сведений.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header wsddisco.h (включая Wsdapi.h)
DLL Wsdapi.dll

См. также раздел

IWSDiscoveryPublisher