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


Метод IWSDDeviceHost::Init (wsdhost.h)

Инициализирует экземпляр объекта IWSDDeviceHost , который представляет устройство на стороне узла.

Синтаксис

HRESULT Init(
  [in]           LPCWSTR        pszLocalId,
  [in, optional] IWSDXMLContext *pContext,
  [in, optional] IWSDAddress    **ppHostAddresses,
  [in, optional] DWORD          dwHostAddressCount
);

Параметры

[in] pszLocalId

Логический или физический адрес устройства. Логический адрес имеет вид urn:uuid:{guid}. Если pszLocalId является логическим адресом, узел объявит логический адрес, а затем преобразует его в физический при получении сообщений Resolve или Probe.

Если pszLocalId является физическим адресом (например, URL-адрес с префиксом http или https), узел будет использовать адрес в качестве физического адреса и будет размещаться на этом адресе вместо адреса по умолчанию.

Для безопасного взаимодействия pszLocalId должен быть URL-адресом с префиксом https, а узел будет использовать протокол SSL/TLS на порте, указанном в URL-адресе. Рекомендуемый порт — порт 5358, так как он зарезервирован для безопасных подключений с помощью WSDAPI. Если порт не указан, узел будет использовать порт 443. Порт узла должен быть настроен с помощью SSL-сертификата сервера. Дополнительные сведения о конфигурации портов узлов см. в разделе HttpSetServiceConfiguration.

Любой URL-адрес (HTTP или HTTPS) должен заканчиваться косой чертой. URL-адрес должен содержать допустимый IP-адрес или имя узла.

В следующем списке показаны некоторые примеры значений для pszLocalId. Это не полный список допустимых значений.

  • http://192.168.0.1:5357/
  • http://localhost/
  • http://myHostname:5357/
  • https://192.168.0.1:5358/
  • https://myHostname/
  • https://myHostname/myDevice/
  • https://myHostname:5358/

[in, optional] pContext

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

[in, optional] ppHostAddresses

Один объект IWSDAddress или объект IWSDTransportAddress . Объекты предоставляют сведения о конкретных адресах, которые должен прослушивать узел.

Если pszLocalId содержит локальный адрес, результирующее поведение представляет собой сопоставление между логическим адресом и предоставленным физическим адресом (вместо сопоставления между логическим адресом и физическим адресом по умолчанию).

[in, optional] dwHostAddressCount

Количество элементов в массиве ppHostAddresses . Если ppHostAddresses является интерфейсом IWSDAddress , число должно быть равно 1.

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

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

Код возврата Описание
S_OK
Метод успешно завершен.
E_INVALIDARG
pszLocalId имеет значение NULL, длина в символах pszLocalId превышает WSD_MAX_TEXT_LENGTH (8192), или число адресов, на которые ссылается ppHostAddresses , не соответствует dwHostAddressCount.
E_FAIL
Узел устройства находится в непредвиденном состоянии.
E_OUTOFMEMORY
Недостаточно памяти для завершения операции.
E_ABORT
Не удалось завершить инициализацию.

Комментарии

Этот метод вызывается WSDCreateDeviceHost и обычно не требуется вызывать напрямую в коде.

Требования

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

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

IWSDDeviceHost