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


Функция WSDCreateDeviceProxyAdvanced (wsdclient.h)

Создает прокси-сервер устройства и возвращает указатель на интерфейс IWSDDeviceProxy .

Синтаксис

HRESULT WSDCreateDeviceProxyAdvanced(
  [in]  LPCWSTR         pszDeviceId,
        IWSDAddress     *pDeviceAddress,
  [in]  LPCWSTR         pszLocalId,
  [in]  IWSDXMLContext  *pContext,
  [out] IWSDDeviceProxy **ppDeviceProxy
);

Параметры

[in] pszDeviceId

Логический или физический адрес устройства. Логический адрес имеет вид urn:uuid:{guid}. Физический адрес — это универсальный код ресурса (URI) с префиксом http или https. Если этот адрес является универсальным кодом ресурса (URI) с префиксом https, то прокси-сервер будет использовать протокол SSL/TLS.

Если pszDeviceId или pszLocalId является URL-адресом с префиксом https, то оба URL-адреса должны быть идентичными. Если это не так, WSDCreateDeviceProxyAdvanced вернет E_INVALIDARG.

Адрес устройства может иметь префикс символ @. Если pszDeviceId начинается с @, эта функция не получает метаданные устройства при создании прокси-сервера устройства.

pDeviceAddress

Интерфейс IWSDAddress , определяющий адрес транспорта устройства. При указании pDeviceAddress можно создать прокси-сервер устройства, не требуя разрешения логического адреса, передаваемого в pszDeviceId. Этот параметр может иметь значение NULL.

[in] pszLocalId

Логический или физический адрес клиента, который используется для идентификации прокси-сервера и выполнения роли конечной точки приемника событий. Логический адрес имеет вид urn:uuid:{guid}.

Если клиент использует безопасный канал для получения событий, то адрес представляет собой URI с префиксом https. Этот универсальный код ресурса (URI) должен указывать порт 5358, так как этот порт зарезервирован для безопасных подключений с помощью WSDAPI. Перед вызовом WSDCreateDeviceProxyAdvanced в порте должен быть настроен SSL-сертификат сервера. Дополнительные сведения о конфигурации портов см. в разделе HttpSetServiceConfiguration.

[in] pContext

Интерфейс IWSDXMLContext , определяющий пользовательские типы сообщений или пространства имен.

Если значение РАВНО NULL, используется контекст по умолчанию, представляющий встроенные типы сообщений и пространства имен.

[out] ppDeviceProxy

Указатель на интерфейс IWSDDeviceProxy , который используется для представления удаленного устройства WSD для клиентских приложений и ПО промежуточного слоя.

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

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

Код возврата Описание
S_OK
Метод успешно завершен.
E_INVALIDARG
pszDeviceId имеет значение NULL, pszLocalIdNULL, длина в символах pszDeviceId превышает WSD_MAX_TEXT_LENGTH (8192), длина символов pszLocalId превышает WSD_MAX_TEXT_LENGTH (8192), или pszDeviceId указывает на URI с префиксом https, и этот URL-адрес не соответствует URI, переданного pszLocalId.
E_POINTER
ppDeviceProxy имеет значение NULL.
E_OUTOFMEMORY
Недостаточно памяти для завершения операции.

Комментарии

Функция WSDCreateDeviceProxyAdvanced вызывает метод IWSDDeviceProxy::Init , который инициализирует экземпляр объекта IWSDDeviceProxy .

Эта функция также извлекает метаданные устройства, если только параметр pszDeviceId не начинается с символа @. Чтобы получить метаданные устройства после создания прокси-сервера устройства, вызовите IWSDDeviceProxy::BeginGetMetadata и IWSDDeviceProxy::EndGetMetadata для возвращенного объекта IWSDDeviceProxy .

Сведения об устранении неполадок WSDCreateDeviceProxyДополнение вызовов функций см. в статье Устранение неполадок приложений WSDAPI.

Требования

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

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

Устранение неполадок с приложениями WSDAPI