Функция 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 для клиентских приложений и ПО промежуточного слоя.
Возвращаемое значение
Возможные возвращаемые значения включают, помимо прочего, следующие:
Код возврата | Описание |
---|---|
|
Метод успешно завершен. |
|
pszDeviceId имеет значение NULL, pszLocalId — NULL, длина в символах pszDeviceId превышает WSD_MAX_TEXT_LENGTH (8192), длина символов pszLocalId превышает WSD_MAX_TEXT_LENGTH (8192), или pszDeviceId указывает на URI с префиксом https, и этот URL-адрес не соответствует URI, переданного pszLocalId. |
|
ppDeviceProxy имеет значение NULL. |
|
Недостаточно памяти для завершения операции. |
Комментарии
Функция 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 |